2017-05-08 2 views
0

uib-dropdownをカスタムコンポーネントの中にラップしている角型のカスタム検証を作成しようとしています。 オンの場合に2番目のドロップダウンの内容が変更される場合があります。この場合、2番目のドロップダウンにはオプションがないため、フォームは提出できません。 my-select内にラップ必要なアトリビュートを持つ角ラップuib-dropdown

<my-select 
    options="$ctrl.formModel.myModel()" 
    label-field="name" 
    ng-model="$ctrl.formModel.mySelectedItem" 
    ng-required> 
</my-select> 

私は通常の方法で検証することができないよuib-drodown内のフォーム要素でありますので、それは(主にクラスを追加する)カスタムuib-dropdown実装

です。 モデルの内容を確認する方法はありますか? また、同じコンポーネントの非実装があるかもしれません。ng-required

ありがとうございます!私がやってしまった私の構成要素については

+0

[AngularJS Developer Guide - Custom Validation](https://docs.angularjs.org/guide/forms#custom-validation) – georgeawg

+0

ええと...私はそれを調べています。これまではフォーム要素のカスタム検証を処理していることがわかりましたが、ここではそのようなことはありません。それは同じであるべきですか?また、例ではコンポーネントの代わりにディレクティブを使用しています。 – Tebo

+0

あなたのコードに起因する問題について質問するときに、人々が問題を再現するために使用できるコードを提供すれば、より良い回答が得られます。 [最小限で完全で検証可能なサンプルの作成方法](http://stackoverflow.com/help/mcve)を参照してください。 – georgeawg

答えて

0

$setValidityを設定
self.$onChange =() => { 
    if (_.isUndefined(self.model)) { 
     return self.ngModelCtrl.$setValidity('required', false); 
    } else { 
     return self.ngModelCtrl.$setValidity('required', true); 
    } 
} 

requiredには、私は必要なものですが、それは、検証目的のために何に変更してもよいです。

ありがとうございます@正しい方向に私を指しています!

関連する問題