3

多くの を作成し、 (から)ng-formに基づいて各フォームに名前を付けるディレクティブがあります。私の問題は、フォームが無効なときにエラー コンテナー (エラー メッセージを含む) を表示したいが、フォームを適切に参照する方法が見つからないことです。$indexng-repeat

これが私のコードです:

<ng-form name="innerForm{{$index}}">

    <label ... ><input name="input" ... />

        <div class="error-container" ng-show="'innerForm'+$index.input.$invalid">
               // show the error message
        </div>

</ng-form>

'innerForm'+$index.input.$invalid例のように評価されたいinnerForm5.input.$invalid

私は多くの試みをしましたが、うまくいきません。動的に名前が付けられたフォームを参照する正しい方法は何ですか?

4

2 に答える 2

0

まず、ng-form は分離されたスコープを作成します。ですから、ng 形式の静的な名前を付ければ問題ありません。$index などを追加する必要はありません。

ng-show="innerForm.input.$invalid"

要素を使用してフォームコントローラーを見つけるためのコードスニペット

  var elmParent = $(domEle).parents('form, ng-form, [ng-form]');
    var formCtrl = null;
    var elemCtrl = null;
    if (elmParent.length) {
    var elm = angular.element(domEle);
        formCtrl = elm.scope().$parent[elmParent.attr('name') || elmParent.attr('ng-form')];
    }

これが役立つことを願っています

于 2014-07-25T11:24:30.990 に答える