0

Bindonceのパフォーマンスを改善するために使用しましたng-repeat

しかし、私には 1 つの問題があります。使用されるコレクションはng-repeat少し後でデータで満たされます (API からの要求データには時間がかかります) Bindonce

サーバーからの応答を待ってからバインドするように指定するにはどうすればよいですか?


コード例:

コントローラーには配列があります$scope.requests = [];

工場で初期化されます

$scope.requests = CurrentUserData.getRequests();

私は約束について赤くなり、このコードが役立つと思いました:

CurrentUserData.getRequests()
            .then(function(response) {
                $scope.requests = response;
            });

しかし、私はエラーを受け取ります

angular.js:11655 TypeError: CurrentUserData.getRequests(...).then は関数ではありません

4

2 に答える 2

2

最も考えられる原因: の関数getRequestsCurrectUserDatapromise を返さないため、次のようにする必要があります。return $http.get('/the/url/etc')

于 2016-04-12T07:52:55.413 に答える
0

CurrentUserData.getRequests(...)約束を返していません。

コードを使用する場合

CurrentUserData.getRequests()
            .then(function(response) {
                $scope.requests = response;
            });

次に、行を次の$scope.requests = responseように変更する必要があります$scope.requests = response.data

元のコードを利用できるとは言っても

$scope.myData = CurrentUserData.getRequests();
$scope.$watch(myData,
              function(newVal, oldVal){
                     $scope.requests = newVal
              });
于 2016-04-12T08:06:15.800 に答える