1

我有一个页面可以动态更新我的模型

<div ng-repeat="action in actions">
  <div ng-show="action.showMyDiv">Hello </div>
<div>

当我从当前页面中的操作动态更新我的模型时

 $scope.actions[id]['showMyDiv']= true,

div 不显示。拜托,你能帮帮我吗?

提前致谢 。

4

1 回答 1

1

如果您手动更新该值,您可以将其包装在 $scope.$apply() 中:

$scope.$apply(function(){
    $scope.actions[id]['showMyDiv']= true
})

编辑:

$scope.$apply 2 美分:角度计算绑定的方式是在每次渲染时进行脏检查(如果您四处搜索,则有大量关于该过程的资源)。当您使用角度默认方法(例如,ng-click)时,会设置一个标志来警告应用程序页面需要“刷新”,并且您会看到更改发生。

如果您手动更改任何内容,则需要警告应用程序需要刷新,您可以使用 $apply 来完成。请参阅此示例以进行说明。请注意,两个更改是“手动”进行的,在 2 秒和 4 秒,使用 window.timeout (您不应该使用它,而是使用 $timeout 服务),但只有在第二个更改传播到视图之后.

于 2013-07-27T19:10:17.337 回答