2

AJAX 呼び出しがいつ完了したかに基づいて、 $scope にブール値を持つ ng-show を使用して、2 つの div を条件付きで表示/非表示にしようとしています。基本的に、次のレイアウトを使用します。

<div id="div1" ng-show="!loadingData">
   <!--Some markup here-->
</div>
<div id="loadingMessage" ng-show="loadingData">
   Loading...
</div>

変更を引き起こす関数には、次のものが含まれます。

$scope.loadingData=true;

var promise = dao.doAjaxGet("url");

promise.then(function(data){
  //Hide loading message
  $scope.loadingData=false;
});

AJAX 呼び出しは正しく動作しており、これは Chrome、Safari、Firefox では正常に動作しますが、サポートが必要な IE の 2 つのバージョン (IE7 と IE8) では動作しません。呼び出しのステータスに関係なく、読み込み中のメッセージは非表示のままで、div1 は表示されたままになります。

4

4 に答える 4

1

これはキャッシングに関連していることがわかりました。Chrome と IE は両方とも、最初の呼び出しの後に ajax 呼び出しをキャッシュします。ajax呼び出し構成に導入することでクロムの問題を解決できましたcache:falseが、IEでは効果がないようです。誰かがこれについてさらに情報を持っている場合は、私に知らせてください。

于 2013-02-25T16:31:00.740 に答える