Dan*_*oul 7 javascript angularjs angularjs-scope bootbox ng-boot-box
这是我关于SO的第一个问题.
当我在作用域上拼接数组元素时,在bootbox.js的回调中完成时,不会反映该更改.
作品:
$scope.deleteA = function() {
if (confirm("Really delete Item 3?")) {
$scope.itemsA.splice(2, 1);
}
}
Run Code Online (Sandbox Code Playgroud)
不起作用:
$scope.deleteB = function() {
bootbox.confirm("Really delete Item 3?", function(answer) {
if (answer === true) {
$scope.itemsB.splice(2, 1);
}
});
}
Run Code Online (Sandbox Code Playgroud)
我主要是想了解原因.这对我来说比拥有一个花哨的解决方案更重要.
角度范围变量从角度的ouside世界发生任何变化,没有亲密的角度消化系统来运行消化周期来更新绑定.
在bootbox回调角度不知道有什么变化,这就是为什么不更新视图.
要解决此问题,您需要使用$apply方法或$timeout服务手动启动摘要周期 ,如下所示
bootbox.confirm("Really delete Item 3?", function(answer) {
if (answer === true) {
$scope.$apply(function(){
$scope.itemsB.splice(2, 1);
});
}
});
Run Code Online (Sandbox Code Playgroud)