1

私はAngularjsアプリを持っています。私はgapiを使用してサインインし、GoogleCloudエンドポイントを呼び出してデータを取得しています。サインインは正常に機能し、エンドポイントからデータを正常にフェッチします。

ただし、データをフェッチした後、データを$scope変数(UIにバインドされている)に割り当てると、UIは更新されません。エラーもありません。以下は私のコードスニペットです。何か案は?

function TestCtrl($scope){
   $scope.contactsList = [];//UI template is bound to this list
//Assuming the gapi client is already loaded
gapi.client.contactendpoint.list().execute(function(resp) {
            if (!resp.code) {
                $scope.contactsList = resp.items;//Does not update ui list
            } else {
                alert("Error, response is: "
                    + angular.toJson(resp));
            }
        });
}

よろしく、Nadeem Ullah

4

1 に答える 1

3

angular フレームワークの外部からスコープを更新する場合は、 $apply() を使用する必要があります (たとえば、ブラウザー DOM イベント、setTimeout、XHR、またはサードパーティ ライブラリから)。詳細はhttp://docs.angularjs.org/api/ng.$ro​​otScope.Scopeで入手できます。

function TestCtrl($scope){
   $scope.contactsList = [];//UI template is bound to this list
   //Assuming the gapi client is already loaded
   gapi.client.contactendpoint.list().execute(function(resp) {
     if (!resp.code) {

       $scope.$apply(function(scope) {
         scope.contactsList = resp.items;
       });

     } else {
       alert("Error, response is: " + angular.toJson(resp));
     }
  });
}
于 2012-11-21T20:30:33.720 に答える