2014-04-02 45 views
0

我正在編寫用於驗證的指令。我輸入現場員工number.when我進入第一個數字我不能夠得到價值是什麼我entered.when我進入第2位 我能夠得到第一位數..無法在angularjs中正確使用按鍵事件指令

HTML代碼

<input type="text" maxlength="7" ng-model="empno" emp-validator > 

指令代碼

app.directive('empValidator',function(){ 
     return { 
      restrict: 'A', 
      link : function(scope, elem, attr, ctrl) 
      { 
       var keyCode =  [8,9,37,39,48,49,50,51,52,53,54,55,56,57,96,97,98,99,100,101,102,103,104,105,110]; 
      elem.bind("keydown", function(event) { 
      if($.inArray(event.which,keyCode) == -1) { 
       scope.$apply(function(){ 
       event.preventDefault(); 

         }); 
        } 
       console.log("Emp No"+scope.empno); 
       } 
       } 

我第一次得到僱主沒有定義。

回答

0

爲了捕獲指令中的完整字符串,您將需要處理不同的事件,我建議按下按鍵(jQuery API),以便在指令中獲得輸入框的完整值。

+0

我想你沒有閱讀或理解我的問題。當我第一次輸入東西時,我在Mozilla控制檯中出現'undefined'錯誤。當我第二次輸入東西時,我得到了我第一次輸入的值。 – sar

+0

啊,對不起,那是因爲你沒有價值,模型不會更新,直到按下按鍵或鍵盤。所以你正在處理的事件是在你按下的鍵被應用之前觸發的。如果該值爲aaa,並且按下b鍵,則該事件發生時該值仍將爲aaa。 – Brocco

+0

我應該使用哪個事件? – sar

相關問題