角$ scope不会在Bootbox回调中更新

丹尼灵魂

这是我关于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);
      }
    });
}

我主要是想了解原因对我而言,这比花哨的解决方法重要得多。

我创建了一个Plunker来展示效果

格伦迪

角度范围的变化会随角度范围的变化而发生,不会使角度摘要系统运行摘要循环来更新绑定。
bootbox角度的回调中不知道有什么变化,这就是为什么不更新视图。
为了解决这个问题,就需要开球消化周期手动使用$apply方法,或$timeout服务,这样

bootbox.confirm("Really delete Item 3?", function(answer) {
  if (answer === true) {
    $scope.$apply(function(){
        $scope.itemsB.splice(2, 1);
    });
  }
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章