2015-12-30 2 views
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> 

ответ

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); 
     } 
    } 
});