0

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

ユーザー入力をフィルター処理するフィルターがありますが、3 回または 2 回に 1 回、ボックスに文字を入力すると通過します。意味が分からない場合は、次のように入力してみてください。

ddd
asdfgg
vckzvdd
qwertt

メッセージが届くことを願っています。入力しても表示されません

dfadfasdf, 

これは良いことですが、仮定することはできません。

4

1 に答える 1

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/

于 2013-05-06T18:53:54.490 に答える