2

ボタンのフォームが有効でない場合、ボタンを無効にしようとしています。ただし、何らかの理由で、フォームに関連付けられた $error 配列は、10 個の役に立たないエラーのリストを保持しています (そのため、ボタンは常にoffです)。すべて次のような形状です:

{
    "$validators": {},
    "$asyncValidators": {},
    "$parsers": [],
    "$formatters": [
        null
    ],
    "$viewChangeListeners": [],
    "$untouched": true,
    "$touched": false,
    "$pristine": true,
    "$dirty": false,
    "$valid": false,
    "$invalid": true,
    "$error": {
        "required": true
    },
    "$name": "",
    "$options": null
}

ご覧のとおり、$name プロパティが空で、他に役立つ情報はありません。

4

1 に答える 1

1

最初に投稿された問題ではありませんが、解決策を見つけました。問題は、入力を含むフォームの一部を意図的に非表示にするために ngIf を使用していたことです。しかし、ある時点で、これを ngShow に変更するという魔法のアイデアが頭に浮かび、しばらくしてからその結果に気付きました。問題がありました.Angularは非表示の要素を考慮しますが、フォーム検証のために存在しない要素は考慮しません. それは論理的で合理的に聞こえます。

しかし、このアプリケーションでフォーム プロパティのデバッグを開始したのはこれが初めてで、$name が空である理由がわかりません。$scope に何かを添付する代わりに、「controller as」構文を使用している可能性がありますか? そのせいかもしれませんが、とにかくAngularのマイナス面だと思います。

于 2015-04-29T18:16:13.493 に答える