这是我关于SO的第一个问题。
当我在范围内拼接数组的元素时,在bootbox.js的回调中完成时,该更改不会反映出来。
作品:
$scope.deleteA = function() {
if (confirm("Really delete Item 3?")) {
$scope.itemsA.splice(2, 1);
}
}
不起作用:
$scope.deleteB = function() {
bootbox.confirm("Really delete Item 3?", function(answer) {
if (answer === true) {
$scope.itemsB.splice(2, 1);
}
});
}
我主要是想了解原因。对我而言,这比花哨的解决方法重要得多。
角度范围的变化会随角度范围的变化而发生,不会使角度摘要系统运行摘要循环来更新绑定。
在bootbox
角度的回调中不知道有什么变化,这就是为什么不更新视图。
为了解决这个问题,就需要开球消化周期手动使用$apply
方法,或$timeout
服务,这样
bootbox.confirm("Really delete Item 3?", function(answer) {
if (answer === true) {
$scope.$apply(function(){
$scope.itemsB.splice(2, 1);
});
}
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句