【问题标题】:how to use angular filter filter keypress characters如何使用角度过滤器过滤按键字符
【发布时间】:2013-05-06 18:04:36
【问题描述】:

http://jsfiddle.net/x3azn/s7gFD/1/

我有一个过滤器可以过滤用户输入,但是每三到两次,如果你在框中输入一个字母,它就会通过。如果您不明白我的意思,请尝试输入以下内容。

ddd
asdfgg
vckzvdd
qwertt

希望你能得到消息。 如果你输入它就不会出现

dfadfasdf, 

这很好,但我们不能假设。

【问题讨论】:

    标签: parsing angularjs filter


    【解决方案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/

    【讨论】:

    • 是的,我计划将这段代码重用于许多其他领域,尽管这可以使用服务来完成。我也想知道是否可以通过这种方式过滤掉空格。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-10
    • 1970-01-01
    • 2017-02-16
    • 1970-01-01
    相关资源
    最近更新 更多