Я пытаюсь получить значение из одного из полей ввода в моей форме, но мой код не работает:
JavaScript:
angular
.module('myDirectives')
.directive('pwMatch', matchPassword);
function matchPassword() {
return {
restrict: 'A',
require: 'ngModel',
link: function (scope, element, attrs, ngModelCtrl) {
var modelIt = attrs.pwMatch;
var inputValue = attrs.modelIt;
console.log(inputValue);
}
};
};
HTML:
<input name="telephone" type="number" value="223344455">
<div pw-match="form.telephone"></div>
Если вы пытаетесь получить значение ввода, используйте ng-model
.
<input ng-model="form.telephone" type="number" value="223344455">
<div pw-match input-name="form.telephone"></div>
И если вы хотите получить это значение в директиве с использованием имени в атрибуте, используйте метод $watch
в области.
JS
angular.module('myDirectives',[])
.directive('pwMatch', function() {
return {
restrict: 'A',
link: function (scope, element, attrs) {
scope.$watch(attrs.inputName, function(value) (
var inputValue = value;
console.log(inputValue);
};
}
}
});
.module('myDirectives')
должно быть
.module('myDirectives', [])
Даже если у вас нет зависимостей, вы должны иметь пустой массив.
Кроме того, это действительно плохая идея использовать переменную функцию как директиву или что-то еще, она просто запутает вас.
Это тоже работает и может сделать ваше приложение немного проще в обслуживании:
angular.module('myDirectives', [])
.directive('pwMatch', function() {
return {
restrict: 'A',
require: 'ngModel',
link: function (scope, element, attrs, ngModelCtrl) {
var modelIt = attrs.pwMatch;
var inputValue = attrs.modelIt;
console.log(inputValue);
}
}
});