获取指令中的输入文本的值(ANGULAR.JS)

时间:2017-03-22 13:53:54

标签: javascript angularjs

http://jsfiddle.net/ccLwj3us/

您好。这是我的代码。我需要获取输入文本的值,但是当输入文本的值被更改时,我只能获取值。如何在不需要更改的情况下获取输入文本的值(最初得到输入文本的值)

我想做一些非常通用的东西,我可以在任何控制器中重复使用它。有一定数量的字段并验证它们,所以我不想总是得到变量“number”的值。

我想在任何控制器上重用此指令。我不会总是有$ scope.numero变量。如何在不在指令中键入scope.numero的情况下获取文本字段的值?

  var app = angular.module('app', []);

  app.controller('appCtrl', function ($scope) {
  $scope.numero=100500
  });

  app.directive('validate', function () {

      return {
          restrict: 'AE',
          require: 'ngModel', 

          link: function (scope, element, attrs, ngModel) {
            if (!ngModel){
              return;          
            }

            ngModel.$parsers.push(function(val){
              if ((val>10) && (val<20)){
                element.removeClass("wrong"); 
                element.addClass("correct"); 
              } else {
                element.removeClass("correct");
                element.addClass("wrong"); 
              }
              ngModel.$render();
            })


          }
      };
  });

1 个答案:

答案 0 :(得分:2)

您需要的数据已经在ngModel内,因此您可以使用ngModel.$modelValue检索它。

(一般来说,当使用Angular时,最好不要习惯从DOM中读取数据 - DOM是范围数据的副作用表示;不需要指令&#34;从输入字段读取数据&#34;因为输入字段首先使用指令中已有的数据填充!)