2017-03-22 74 views
0

http://jsfiddle.net/ccLwj3us/获取指令中输入文本的值(ANGULAR.JS)

嗨。这是我的代码。我需要获取输入文本的值,但只有在输入文本的值被更改时才能获取该值。怎样才能获得,而不需要改变输入文本的价值。(最初得到的输入文本的值)

我想要做的东西很普通,我可以在任何控制器重复使用。有一定数量的字段并验证它们,所以我不想总是获取变量“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(); 
      }) 


      } 
     }; 
    }); 
+0

你想在你的指令NUMERO的价值,当你初始化呢? –

+0

@Pramod_Para是的,我需要这个值,但在指令检查验证分配错误|正确的类 – yavg

+0

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

回答

1

你需要的数据已经是ngModel里面,这样你就可以ngModel.$modelValue检索。 (一般来说,在使用Angular时,最好摆脱从DOM读取数据的习惯 - DOM是范围数据的副作用表示;不需要指令“读取数据从输入字段”,因为输入字段使用数据填充已在该指令在首位!)

+0

感谢的人,但ngModel。$ modelValue的结果是NaN .. jsfiddle.net/0tsvue0L – yavg

+0

你想它到达指令之前访问数据。在'$ timeout'中包装该警报(迫使它等到下一个'$ digest'),你会看到正确的值:http://jsfiddle.net/tL4b13o6/ –

相关问题