所以,我看到了一个例子,他们将一个angualar传递给了ngRepeat并且工作正常.出于某种原因,当我设置此示例时,它不起作用.谁能告诉我为什么?如果您在没有延期的情况下分配数据,则可以正常工作,即$scope.objects = [{id:1} …]
非常感谢
Fiddle here
非常感谢
Fiddle here
<!doctype html> <html ng-app="app"> <head> </head> <body> <testlist/> <script src="/lib/angular/angular.js"></script> <script> var app = angular.module('app',[]); app.factory('dataService',function ($q) { return { getData : function () { var deferred = $q.defer(); setTimeout(function () { deferred.resolve([{id:1},{id:2},{id:3},{id:4}]); },0); return deferred.promise; } }; }); app.directive('testlist',['dataService',function(dataService) { return { restrict: 'E',replace: true,scope : {},template: '<div ng-repeat="data in objects">{{inspect(data)}}{{data.id}}</div>',controller: function($scope) { $scope.objects = [{id:1},{id:4}]; $scope.inspect = function (obj) { console.log(obj) } } } }]); </script> </body> </html>
我不认为你可以直接使用promise对象,你应该使用
documentation中所述的then回调.
原文链接:https://www.f2er.com/angularjs/143657.html这意味着你的
$scope.objects = dataService.getData();
应该是类似的东西
dataService.getData().then(function(data) { $scope.objects = data; });
否则,$scope.objects将包含promise对象,而不包含要传递以解析的数据.
查看更新的小提琴here.