gpt4 book ai didi

angularjs - 当模型以编程方式更改时调用 ngChange

转载 作者:行者123 更新时间:2023-12-04 01:41:48 24 4
gpt4 key购买 nike

当以编程方式更改模型时调用 angular 的 ng-change 时,我遇到了问题。

$scope.sendMessage = function() {
$scope.message = "Message sent";
}

$scope.confirmed = true;
$scope.mySelectBox = $scope.selects[1];

<select ng-model="mySelectBox"
ng-options="item.name for item in selects track by item.name"
ng-change="sendMessage()">
</select>

这是代码示例: http://plnkr.co/edit/R4MO86ihMrauHXhpCMxi?p=preview

消息应该为空,因为 sendMessage不应该被称为。模型以编程方式更改。

最佳答案

根据文档,你是对的。

https://docs.angularjs.org/api/ng/directive/ngChange

但这似乎是由事件连接的顺序引起的错误

最好的方法 - 诉诸js处理程序(onchange)

$scope.$watch("mySelectBox", function(a,b) {
if (a.name!=b.name) {
$scope.message = "Message sent! (old="+b.name+', new='+a.name+')';
}
});

见普朗克
http://plnkr.co/edit/2ZbxS1tszppR9SrNqxVB?p=preview

HTH

关于angularjs - 当模型以编程方式更改时调用 ngChange,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30846190/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com