http://jsfiddle.net/x3azn/s7gFD/1/
我有一个过滤器可以过滤用户输入,但是每三到两次,如果你在框中输入一个字母,它就会通过。如果您不明白我的意思,请尝试输入以下内容。
ddd
asdfgg
vckzvdd
qwertt
希望你能收到消息。如果你输入它就不会出现
dfadfasdf,
这很好,但我们不能假设。
http://jsfiddle.net/x3azn/s7gFD/1/
我有一个过滤器可以过滤用户输入,但是每三到两次,如果你在框中输入一个字母,它就会通过。如果您不明白我的意思,请尝试输入以下内容。
ddd
asdfgg
vckzvdd
qwertt
希望你能收到消息。如果你输入它就不会出现
dfadfasdf,
这很好,但我们不能假设。
由于某种原因,您的解析器不会在重复按键时执行。因此,如果您键入“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
}
});