2016-12-28 2 views
0

コントローラ内部からフォームフィールドの$ validプロパティにアクセスしようとすると、 "$ valid undefinedのアクセスできません"というメッセージが表示されます。私はすでに私のルートでcontrollerAsを使用していたが、良い対策のために私はNG-コントローラtestCtrlとして= "TestCtrlを追加 -角型コントローラからフォームにアクセスするのに問題がある

  1. 使用controllerAs:ここで私は無駄に、SO上の他の回答に基づいて、試してみたものです"私のコンテナDIVに。
  2. スコープを渡してみてください - ng-initをformタグ(ng-init = testFunction(this))に追加しました。この関数はコントローラ関数を呼び出して、formScopeというスコープのプロパティを設定しますAngularJs can't access form object in controller ($scope)
  3. 私は今覚えておくことができないあなたのコントローラ
  4. いくつかの他の提案に} {=スコープを試してみてください

私の要件は、私には、単純です:。 すると、フィールド・ロード(コントローラの負荷モデルデータ)、次のようにする必要があります。

  1. フィールドの隣に適切な検証グリフコンを表示します。
  2. は、ときに、フィールドの妥当性の変化、glyphiconはそれに応じて
  3. のアイコンを変更する必要があります:
    は$有効= falseの場合、使用が
    $有効= trueの場合、使用glyphicon-OK
    ヌル= $有効または未定義をglyphicon、削除するとき(?可能)、
  4. ディレクティブ(将来の使用)への有効性を渡すことができるglyphicon-警告記号を使用

次plunk参照してください:https://embed.plnkr.co/XXFM6Mtt1KnSci5yagTd/

任意のヘルプまたは異なっをアプローチが評価されます。これは私のお尻を蹴っている。おかげ

答えて

2

前記

self.sexValid = self.testForm.sex.$valid; 

は、なぜコントローラのフィールドにその情報を複製

self.sexValid = testForm.sex.$valid; 

によって置き換え、代わりに単にビューで直接

testCtrl.testForm.sex.$valid 

を使用して?

+0

良い点。私は問題を考え直して考えます。私は助けてくれてありがとう - 私は実際のアプリでそれを試して、それもそこで動作します。本当にありがとう。 – miarde

関連する問題