【问题标题】:Trigger ng-change not for default value Angularjs触发 ng-change 不是默认值 Angularjs
【发布时间】:2015-12-30 09:41:41
【问题描述】:
在下拉菜单中,默认选择值为“选择客户”,并包含客户名称列表。 Ng-change 应该只针对客户名称而不是“选择客户”值触发。我们可以在控制器中做到这一点,但是有没有办法在 html/view 中做到这一点。
<Select ng-options="o.cusid in o.cusname for o in custcollections ng-model="modeldata" ng-change="getcusdetails(modeldata)">
<option value=""> Select Customer</option>
</select>
谢谢
【问题讨论】:
标签:
angularjs
select
ng-options
【解决方案1】:
<Select ng-options="o.cusid in o.cusname for o in custcollections ng-model="modeldata" ng-change=" modeldata!='default' && getcusdetails(modeldata)">
<option value=""> Select Customer</option>
</select>
另一种选择是在控制器中进行:
$scope.getcusdetails = function(selected) {
if(selected=='default') return;
//your code
}
【解决方案2】:
您可以在 ng-change 中打勾,以根据条件调用控制器功能。您的代码将类似于:
<select ng-options="o.cusid in o.cusname for o in custcollections ng-model="modeldata" ng-change="modeldata===undefined || getcusdetails(modeldata)"><option value=""> Select Customer</option>
在上面的 sn-p 中,查看 ng-chnage 它是:ng-change="modeldata===undefined || getcusdetails(modeldata)"。因此,每当您选择“选择客户”时,modeldata 的值将是未定义的,因此不会调用函数。当您选择其他值时,modeldata 不会未定义,因此将调用 ng-change 中的函数。