【问题标题】:When I update my model in ng repeat the directive ng-show does not change当我在 ng 中更新我的模型时,指令 ng-show 不会改变
【发布时间】:2013-07-27 21:45:02
【问题描述】:

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

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

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

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

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

提前致谢。

【问题讨论】:

  • 小提琴可能有助于更好地解释问题。

标签: angularjs ng-repeat ng-show


【解决方案1】:

如果你手动更新值,你可以把它包装在 $scope.$apply() 中:

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

编辑:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-08-08
    • 1970-01-01
    • 1970-01-01
    • 2015-03-14
    • 1970-01-01
    • 2016-05-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多