触发 ng-change 不是默认值 Angularjs

Trigger ng-change not for default value Angularjs

在下拉列表中,默认 select 值为 'Select Customer' 并且包含客户名称列表。 Ng-change 应该只针对客户名称而不是 'Select Customer' 值触发。我们可以在控制器中完成,但有什么方法可以在 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>

谢谢

<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
}

您可以在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>

在上面的代码片段中,查看 ng-chnage 它是:ng-change="modeldata===undefined || getcusdetails(modeldata)"。因此,每当您 select 'Select Customer' 模型数据的值将未定义时,函数将不会被调用。当您 select 其他值时,模型数据不会未定义,因此 ng-change 中的函数将被调用。