AngularJS ng-show无法正常工作

use*_*152 3 angularjs

我是棱角分明的新手,已经因为简单的演出不能按预期工作而感到沮丧.

我想显示/隐藏一个div取决于一个标志的状态(flightsProcessed)

fp: {{flightsProcessed}}
<div class="container-fluid" ng-show="flightsProcessed">
        aaa
    </div>
Run Code Online (Sandbox Code Playgroud)

我有一个控制器,在开始时有类似的东西:

$scope.flightsProcessed = false;
Run Code Online (Sandbox Code Playgroud)

之后,在$ http.success()触发的另一个函数中,我执行以下操作:

$scope.flightsProcessed = true;
Run Code Online (Sandbox Code Playgroud)

我的问题是为什么当flightProcessed = true时不显示div虽然当我在它上面打印时,flightsProcessed = true?

我试过使用$ apply但是我得到< $digest already in progress>

我究竟做错了什么?谢谢.

pix*_*its 5

当视图没有更新时,通常是因为您认为正在修改的范围变量(flightsProcessed)不是您期望的实际范围变量.如果您在创建子范围的指令(如ng-repeat,ng-include,ng-view等)中,然后您为flightProcessed分配了一个无意中在子范围内创建新范围变量的值,则可能会发生这种情况. .这会中断模型绑定,从而不再传播对视图的更新.

要查看是否发生这种情况,请尝试:

  $scope.$parent.flightsProcessessed = true;
Run Code Online (Sandbox Code Playgroud)

看看它是否解决了这个问题.