ng-formは、ウィザードの後半部分であるため、最初は無効に設定する必要があります。フォームには要素を含むグリッドが含まれています。各要素には独自の検証がありますが、要素がない場合はフォームが有効と表示されるという問題があります。行の数が0の場合、開始の場合は無効とマークする必要があります。どのようにすればいいですか?anglejsでフォームを無効に設定
8
A
答えて
18
いくつかの調査の後で、次のコードはうまく動作します。コントローラ内:
//Set the form as invalid for start.
$timeout(function(){
$scope.orderForm.productsForm.$invalid = true;
});
タイムアウトは、フォームにアクセスできることを保証します。それらはコントローラを通過する最初のパスで構築されないため、タイムアウトまたは時計が必要です。 フォームを無効とマークします。より良い方法は、ngModelControllerの文書化されたapi $setValidity
を使用して無効とマークすることができる入力を見つけることですが、私の使用例では入力がまだありません。
1つの注意点が、これを直接対応する$無効===! $ valid invariantが壊れているので、このハックに注意してください。
1
次はクリーナーソリューションだと思います。
$scope.$watch('myForm', function (a, b) {
$scope.myForm.$setValidity('custom', false, window); // 'custom' validation key, binds window as form control
});
私は$watch
が好きです。最初は、「フォームがまだ作成されているかどうか」をチェックしてから、有効性を設定しました。
しかし、それは実際には必要ではないようです。$ watchが最初の時刻に実行される前にフォームが作成されます(したがって、時計は変更されません)。
$setValidity
はngForm API(私はform.jsソースコード内にあります)の一部であると思われ、$ validと$ invalidの両方を設定するフォームコントロール自体で使用されています。
関連する問題
- 1. anglejsにフォーム入力値を設定する方法は?
- 2. 入力を無効に設定する
- 3. 無効な設定logstashファイル
- 4. 無効な設定ページパス:セキュリティ
- 5. ライブラリナゲットの設定が無効
- 6. Silverstripe - 設定でモジュールを有効または無効にする
- 7. 設定でログレベルを有効/無効にする
- 8. 無効なフォーム
- 9. ビジュアルスタイル/テーマを単一のフォームで無効/無効にする
- 10. ディレクティブ(anglejs)の有効性を設定する方法
- 11. SMTP設定SendUsingの設定値がASP-Classicで無効です
- 12. $ invalidと$ errorを設定してもフォームが無効にならない
- 13. Reduxフォーム - デフォルト値のチェックボックスを無効に設定してください
- 14. openssl: 'ポリシー'設定で無効なタイプ
- 15. ラジオボタンの設定が無効です
- 16. タイムアウトの設定は無効です。
- 17. 子フォームが手動で無効に設定されている場合、角度が親フォームを無効にしません
- 18. Angular2 - フォームが無効です
- 19. Djangoのフォーム常に無効
- 20. iPhoneの設定ユーティリティ - カメラアプリケーションを無効にするとUIImagePickerも無効になる
- 21. 無効なDjangoフォーム
- 22. Django:無効なフォーム
- 23. NetBeansは、フォーム無効
- 24. SQL Serverでジョブの有効/無効を設定する権限
- 25. Yoctoのカーネル設定オプションを有効/無効にする
- 26. anglejsコントローラからanglejs定数ファイルに値を設定する方法
- 27. Kik botをカールのPOSTリクエストで設定中に "無効な設定"
- 28. ビューページで設定したときにtablayoutを無効にする
- 29. anglejsのアイテムごとにボタンを無効または有効にします
- 30. 設定を無効にするiosローカル通知をプログラムでチタンスタジオ
[Angularjs:コントローラで入力を$ validに手動で設定するにはどうすればよいですか?](http://stackoverflow.com/questions/15437435/angularjs-how-do-i-manually-set-input-to -valid-in-controller) –
質問に答えがない場合、どのように重複することができますか?それは明らかにそれを行う可能性がありますが、私は答えでそれを実証しています。それがこのQ&Aがここにある理由です。だから、人々はそれを見つけることができます。 – stride