Parsing 如何使用角度过滤器过滤按键字符
我有一个过滤器可以过滤用户输入,但是每三次或两次过滤一次,如果你在框中键入一个字母,它就会通过。如果你不明白我的意思,试着键入以下内容Parsing 如何使用角度过滤器过滤按键字符,parsing,angularjs,filter,Parsing,Angularjs,Filter,我有一个过滤器可以过滤用户输入,但是每三次或两次过滤一次,如果你在框中键入一个字母,它就会通过。如果你不明白我的意思,试着键入以下内容 ddd asdfgg vckzvdd qwertt 希望你能得到这个信息。 如果你打字,它就不会出现 dfadfasdf, 这很好,但我们不能假设。由于某些原因,您的解析器不会在重复按键时执行。因此,如果您键入“aa”或“bb”或“cc”,则在解析器从未运行的情况下,框中会留下“a”、“b”或“c”。我真的无法回答为什么会发生这种情况,但我可以提出一个替代
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
}
});
是的,我计划在许多其他领域重复使用这段代码,尽管这可以通过服务来完成。我还想知道是否有可能用这种方式过滤掉空格。