0

次のマークアップがあります。

<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 を使用して、画像は存在するが、幅と高さが「0」であることを確認できます。

関数を ng-click-event に割り当ててもう一度開始すると、画像が正しく表示されます。

私の推測では、「ng-init」と「$scope.apply」の組み合わせが問題を引き起こしていると思います。

4

1 に答える 1