2017-12-20 10 views
2

この問題についていくつかお手伝いします。オブジェクト変数をHTMLの変数にバインドします

ng-repeat="question in questions"という形式のtestFormというフォームがあります。 questionQuestionIdです。このフォームでは、検証を適用しようとしています。 questionsが動的であるため、入力フィールドに静的な名前を使用できません。したがって、すべてのフィールドに名前としてquestion.QuestionIdを適用して一意にします。

ここで検証するには、フィールドの名前を確認する必要があります。たとえば、testForm +フィールド名(QuestionId)をチェックします。私はいくつかの方法を試しましたが、question.QuestionIdをどのようにしてtestFormに追加するのか分かりません。

コード:

<div ng-form="testForm" novalidate> 
    <div ng-repeat="question in questions"> 
    <label class="item item-input" ng-class="{ 'has-error': testForm.question.QuestionId.$error }"> 
     <input class="form-error border" 
       type="text" 
       ng-model="childName" 
       name="{{question.QuestionId}}" 
       ng-minlength="2" 
       ng-maxlength="99" 
       ng-required="true"> 
    </label> 
    </div> 
    <div ng-show="testForm.question.QuestionId.$error"> asd </div> 
</div> 

私は、検証作業をしようとしていますが、ng-showtestForm内の変数questionを探します。 question.QuestionIdを最初にテキストに変換してからtestFormに配置するにはどうすればよいですか?

+0

試した 'testForm [question.QuestionId]。$ error'? – Zlatko

答えて

3

question.QuestionIdtestFormオブジェクト内にformFieldを作成します。その後、testFormフォームオブジェクトからキーでformFieldを取得できます。

ng-show="testForm[myQuestionId].$error" 

注:あなたは、特定のフォームフィールドを取得するために、特定のquestionIdtestFormでオブジェクトを渡すことができますので、より良い、ng-repeatquestionアイテムを取得することはできません。

+0

非常に速いレスポンスで、機能しました。ありがとうございました!それができるようになるとすぐに回答を受け入れます。 –

+0

@ J.Doe喜んでそれが助けを聞いて、ありがとう:) –

関連する問題