2017-07-25 8 views
2

私はAngularJSバージョン1.5.6を使用しています。テキストエリアとテキスト入力の多い大規模なアプリケーションがあります。私は今日、テキスト型入力のトリミング入力のデフォルトのAngularJS動作に起因するバグを発見しました。この動作をデフォルトでトリミングからトリミングしないように変更したいと思います。AngularJS ngTrimの動作を変更してください

アプリケーションで何百ものテキストエリアやテキスト入力を調べるのではなく、簡単な方法がありますか。 (おそらく世界的に、あるいは私自身の指令を書いているでしょうか)

ng-trim(ngTrim)のデフォルト動作を説明しているドキュメントページです。

https://docs.angularjs.org/api/ng/input/input%5Btext%5D

+0

ドキュメントは – charlietfl

+1

'' NG-トリム=「false」に設定するあたり、これはあなたのテキストボックスのすべての参照をつかむためのjQueryを使用するための良好なユースケースで、その後、NG-トリムfalseに設定することがあります。私は通常、角型アプリケーションでJqueryコードを混ぜることを主張していませんが、それはかなり簡単なことです。 –

+0

@charlietflはい、私はそれを見ますが、私は何百もの異なる要素についてそれをしたくありません。 – ryanp102694

答えて

2

以下のディレクティブは、すべての入力タイプ=テキストフィールドのために働く必要があります。すべての入力フィールドについて、デフォルトでngTrimの値をfalseに設定します。また、必要に応じて同様のテキストエリアを作成することができます。

.directive('input', function($compile){ 
    return { 
    link(scope, element, attrs) { 
    if (element.attr('type') === 'text') { 
     attrs.$set('ngTrim', 'false'); 
    } 
    } 
    }; 
}); 
+0

@SKPallどこで指定しますか? –

+0

コントローラーが追加された同じモジュールまたは新しいモジュールに追加できます。 – SKSpall

+0

申し訳ありません。それをモジュールに結びつける方法がわかります。具体的には、入力ディレクティブをどこで呼び出すか、これがロードされるとグローバルになり、すべての入力に自動的に影響することを暗示していますか? –

関連する問題