有没有办法取消ng-change
活动?
实际上我想在选择框中有一个选项但不希望用户选择它但想要发出警告信息然后选择上一个选项。
为此,我认为最好的方法应该是如果我能以某种方式取消ng-change
事件,这样就不会产生任何影响,就像我们在html onchange
事件中返回false一样不允许您更改选项。
我还试图以某种方式存储以前的值,然后在ng-change
事件中设置该值,但后来发现ng-change
没有传递event
变量,所以我找不到元素触发事件。
有什么想法吗?
修改
像这样的东西
<select ng-change="DeliveryMethodChange(item)" ng-model="item.DeliveryMethodId" ng-options="method.Key as method.Value for method in deliveryMethods">
<option value="">(Please Select)</option>
</select>
脚本
$scope.DeliveryMethodChange = function(item) {
if (item.DeliveryMethodId.toUpperCase() == 'SH') {
// here I want to reset the value to the previously selected value
alert('You cannot select this delivery method');
return false;
}
// rest of the code
};
答案 0 :(得分:-1)
可能是答案;
$scope.DeliveryMethodChange = function(item) {
$scope.$watch('DeliveryMethodId', function (newVal, oldVal) {
if (newVal == 'SH') {
item.DeliveryMethodId = oldVal;
}
});
}