ng-show对$ scope.apply没有反应

时间:2015-08-22 09:27:20

标签: angularjs angularjs-scope angularjs-ng-show angularjs-ng-init

我有以下标记:

<div class="liveResults">
  <div><img ng-show="home!==undefined" ng-src="{{homeImg}}"> </div>
  <div>0:0</div>
  <div><img ng-show="guest!==undefined" ng-src="{{guestImg}}"> </div>
</div>

在我的控制器中,我按以下方式填写数据:

$scope.init=function() {
    $.getJSON("http://www.example.com/somedata.json", function(result){
      $scope.home=result.home;
      $scope.guest=result.guest;
      $scope.homeImg=$scope.BigImage($scope.home);
      $scope.guestImg=$scope.BigImage($scope.guest);

      $scope.$apply();
      return;
    }
}

该功能由ng-init="init()"

运行

现在ng-src被正确填充,但ng-show没有按预期工作(图像仍然隐藏)我可以看到使用浏览器devtools,图像在那里,但宽度和高度为& #34; 0&#34;

当我第二次通过将其分配到ng-click-event来启动该功能时,图像会正确显示。

我的猜测是&#34; ng-init&#34;和&#34; $ scope.apply&#34;导致问题。

1 个答案:

答案 0 :(得分:1)

ng-src指令中已经有一个隐含的ng-show,所以你问题中的评论说明这​​应该对你有用:

<div class="liveResults">
  <div><img ng-src="{{homeImg}}"> </div>
  <div>0:0</div>
  <div><img ng-src="{{guestImg}}"> </div>
</div>