2014-09-25 42 views
0

我正在使用ng-class指令進行某種驗證,但是在開始處理ng-repeat創建的元素時出現問題。有條件地添加一個類到動態生成的字段

<div class="traveler" ng-repeat="i in getNumber(travelers_count) track by $index" style="margin-top: 15px"> 
         <div class="inp-wr wr-traveler"> 
          <input 
           ng-class="{ 'has-error' : valError && mainForm.last_name[{{$index + 1}}].$invalid}" 
           required 
           class="text-inp" 
           style="width: 200px" 
           ng-model="$parent.last_name[$index]" 
           ng-model-options="{ updateOn: 'blur' }" 
           ng-pattern="namePattern" 
           name="last_name[{{$index + 1}}]" 
           placeholder = "Last name"> 
         </div> 
</div> 

有沒有辦法讓這個工作? ng-class="{ 'has-error' : valError && mainForm.last_name[{{$index + 1}}].$invalid}"

回答

0

找到快速解決方案 - 需要來包裝<ng-form>輸入,並檢查它的有效性。 I.e

<div class="traveler" ng-repeat="i in getNumber(travelers_count) track by $index" style="margin-top: 15px"> 
          <div class="inp-wr wr-traveler"> 
<ng-form name="lastNameForm"> 
           <input 
            ng-class="{ 'has-error' : valError && lastNameForm.$invalid}" 
            required 
            class="text-inp" 
            style="width: 200px" 
            ng-model="$parent.last_name[$index]" 
            ng-model-options="{ updateOn: 'blur' }" 
            ng-pattern="namePattern" 
            name="last_name[{{$index + 1}}]" 
            placeholder = "Last name"> 
</ng-form> 
          </div> 
    </div> 
0

您不需要括號。

mainForm.last_name[$index + 1].$invalid 
+0

刪除括號後firebug假設$ index + 1爲純文本 – 2014-09-25 12:17:29

相關問題