2017-03-22 18 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/ –

相關問題