を検証するためにNG-モデルディレクティブでバインドHTML入力フィールドを持つことが必要です。 AngularJsがこのようにこのフォームを検証できないのはなぜですか?
さらに、myForm.myEmail。$無効は、入力をng-modelとバインドする場合にのみ存在します。なぜこれはそうですか?検証が唯一ngModelディレクティブで存在する場合
は、なぜangularjsは私に価値あるmyFormを与える。$無効から偽?より良い応答はで定義されていません?
を検証するためにNG-モデルディレクティブでバインドHTML入力フィールドを持つことが必要です。 AngularJsがこのようにこのフォームを検証できないのはなぜですか?
さらに、myForm.myEmail。$無効は、入力をng-modelとバインドする場合にのみ存在します。なぜこれはそうですか?検証が唯一ngModelディレクティブで存在する場合
は、なぜangularjsは私に価値あるmyFormを与える。$無効から偽?より良い応答はで定義されていません?
なぜAngularJsはこのようにこのフォームを検証できないのですか?
これは実際に検証機能を調整し、親フォーム指示コントローラに対応するモデル・コントローラ(ngModelController)を登録することにより、検証機能を可能にするものであるとして検証は、唯一ngModelディレクティブのコンテキストで理にかなっているので。
は、入力ディレクティブが実装されている方法を参照するには、ソースと彼らがngModelコントローラと関係を確認します。https://github.com/angular/angular.js/blob/71cf28cf06295e0936f706c048bc07e6c963acc4/src/ng/directive/input.js#L1708
角度は、モデルではなく、HTMLを検証しているため。モデルにバインドしていない場合、角度に関する限り、検証するものはありません。
ngModelがあなたに与えるものを感じ取るには、あなたのフォームでこれを試してください( 'ng-model'を追加した後):' {{myForm.myEmail}} '。 'ng-model'ディレクティブがないと、通常の入力要素には存在しない多くのプロパティがあります。 – Lex
検証がngModelディレクティブのみに存在する場合、なぜangularjsがmyFormの値を与えるのですか?$ invalid to false?より良い応答は未定義ではないでしょうか? –
フォームコントローラには、デフォルトでいくつかの値に初期化されたこれらのプロパティ($ invalid、$ valid、$ touchedなど)があります:https://github.com/angular/angular.js/blob/71cf28cf06295e0936f706c048bc07e6c963acc4/src/ng/directive /form.js#L76。しかし、フォーム内に登録された要素(ngModel)がないため、フォームの検証状態を変更する可能性があります。 – dfsq