2014-09-06 181 views
0

我有一個下拉爲自定義指令。我需要表單驗證就可以了,所以我用這個代碼:自定義指令驗證

autoQuoteApp.directive('dropdown', function() { 
    return { 
     restrict: 'E', 
     scope: { 
     listData:'=', 
     selectedOption: "=" 
     }, 
     template: '<select ng-model="selectedOption" name="drop" required ng-options="list.id as list.value for list in listData"></select>', 
    }; 
}); 

的HTML代碼:

<div class="input-align"> 
    <dropdown selected-option='driverInfo.primaryVehicle' list-data='primaryVehicles'></dropdown> 
    <span class="error" ng-show="myForm.drop.$error.required"> 
     Required! 
    </span> 
</div> 

我面臨的問題是,我有一個單頁和驗證多重下拉菜單正在爲一個工作。

只要我選擇第一個值'必需的'文字被刪除,但我需要它,直到我選擇該特定下拉的值。

+0

如果你使用這樣的模塊,你將不需要做任何特殊的工作驗證就會出現所有的元素http://jonsamwell.github.io/angular-auto-validate/ – Jon 2014-09-07 07:40:26

回答

0

對於您創建的每個指令,保持一個獨立的名字

像 「drop1」

<div class="input-align"> 
<dropdown name="drop1" selected-option='driverInfo.primaryVehicle' list-data='primaryVehicles'></dropdown> 
<span class="error" ng-show="myForm.drop1.$error.required"> 
    Required! 
</span> 

對於其他下拉保持不同的名稱 「drop2」

<div class="input-align"> 
<dropdown name="drop2" selected-option='driverInfo.primaryVehicle' list-data='primaryVehicles'></dropdown> 
<span class="error" ng-show="myForm.drop2.$error.required"> 
    Required! 
</span> 

+0

我試過這個,但它沒有工作。我也嘗試將該名稱傳遞給該指令並使用它,但即使這似乎不起作用。是否需要對孤立的演示文稿進行任何更改? – 2014-09-07 06:06:09