0

我习惯于Bindonce提高ng-repeat.

但是我有一个问题:稍后会用数据填充来自的集合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

最可能的原因:你的函数getRequests没有CurrectUserData返回承诺,它应该是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 回答