2013-05-06 122 views

回答

1

由於某種原因,解析器不能在重複按鍵上執行。因此,如果您鍵入「aa」或「bb」或「cc」,則解析器從未運行時,最終會在框中留下「a」,「b」或「c」。我無法真正回答爲什麼發生這種情況,但我可以建議一個替代方案:

是否有一個原因,您將過濾器與此指令耦合?你可以很容易地實現單獨的指令相同的任務,並且(我反正)似乎更清潔:

app.directive('filteredInput', function($filter){ 
    var dirLink = function(s,e,a,c){ 
     console.log(s); 
     console.log(a); 
     s.$watch(a.ngModel, function(v) { 
      //if (pattern.indexOf('numbers') != -1){ 
       s[a.ngModel] = s[a.ngModel].replace(/[^\d.]/g, ""); 
      //} 
     }); 
    } 
    return{ 
     require: 'ngModel', 
     scope: true, 
     link: dirLink 
    } 
}); 

http://jsfiddle.net/s7gFD/2/

+0

是啊,我planeed上重用這塊許多其他領域的代碼,雖然這可以使用服務完成。我也想知道是否有可能以這種方式過濾掉空格。 – user2167582 2013-05-06 20:23:13