2016-05-30 6 views
0

私はAngularJSバリデーションのフォームを持っています。 問題は、私は動的要素でバリデータを追加することです:フォームバリデータに動的に必要なバリデータを追加するAngularJS

if (constraint.NotNull){ 
    elem.attr("ng-required","true"); 
} 

NgModelControllerこの要素のために、常に「フォームを真= $有効。」を評価、でも空の値を持ちます。

どういうところが間違っていますか?

答えて

1

属性を動的に追加する必要はありません。 ngRequiredのAngularJS APIリファレンスで十分注意深く読むと、ngRequiredの値をバインドできることがわかります。その例が最高です。あなたのケースでは

https://docs.angularjs.org/api/ng/directive/ngRequired

あなたはこれを動的に変更することができますし、AngularJSはそれを反映します

$scope.isRequired = { field1: true, field2: false, ... }

を作成します。

+0

tank u、あなたの解決策は私の人生を保存します。しかし、私はまだ理解していない、なぜ私のソリューションは動作しません。 –

+0

ビューを再レンダリングしたり、ダイジェスト・サイクルをDOMに反映させなければならないため、機能しませんでした。 – Petr

+0

Petr、助けてください。どのように再レンダリングビューを作成するか、またはダイジェストサイクルを行うか?私は "$ compile(content.contents())(scope));"を試みましたが、動作しません。 Angularという形式は常に無効で有効です。 –

関連する問題