Значение захвата из поля ввода

0

Я пытаюсь получить значение из одного из полей ввода в моей форме, но мой код не работает:

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>
Теги:
angularjs-directive

2 ответа

1
Лучший ответ

Если вы пытаетесь получить значение ввода, используйте 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);
            };
        }
    }
});
0
 .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);
        }
    }
});

Ещё вопросы

Сообщество Overcoder
Наверх
Меню