11

私は最近 Angular.js を使い始めましたが、デモ プロジェクトはかなりうまく機能しています。しかし、バックエンド Web サービスからデータを読み込もうとしたときに、ハードコードされた配列だけではなく、ハングアップし始めました。具体的には、$.getJSON().done(...) を使用して $scope を設定した後、ページが適切にデータバインドされないようです。.getJSON が完了した後に $scope に値を代入する代わりに、別の場所/別の方法でそれを行う必要がありますか? 高低を検索しましたが、バックエンドから初期データを取得する角度の良い例を見つけることができませんでした。

これについて何か助けてくれてありがとう!

4

2 に答える 2

13

Angularの外側を更新しようとしているので、スコープで$apply$scopeメソッドを使用してモデルを変更する必要があります。

たぶん次のようなもの:

    $.getJSON('ajax/test.json', function(data) {
        $scope.$apply(function(){
            $scope.modelData = data;
        });
    });

AngularJS でバックエンドにアクセスするための推奨される方法は、jQuery の代わりに$httpまたは$resourceサービスを使用することです。使用する必要はありません。直接$scope.$apply更新するだけです。$scope.modelData

この投稿には、 Angular コードの外部でモデルを更新するための優れたフィドルがあります。

于 2012-08-24T18:20:42.563 に答える
0

または、適用でラップする代わりに、コールバック関数の最後で呼び出すだけです

  $.getJSON('ajax/test.json', function(data) {
    $scope.data = data;        
    $scope.$apply();
});
于 2013-11-18T19:19:22.850 に答える