2014-09-06 146 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