我有一个简单的应用程序,它从REST API返回对象并将它们绑定到范围var。这工作正常,但如果我尝试对$ resource promise返回的对象进行任何处理,则对象是未定义的。
我将这个plunkr放在一起,使用$ q服务重现行为。第一部分将简单数组绑定到范围,第二部分通过延迟对象获取相同的数组。第三个通过延迟对象再次获取数组,然后尝试将一些简单的逻辑应用于返回的对象。不幸的是,返回的对象没有'length'属性。显然我错过了一些东西,大概是使用$ scope。$ apply但我也没有运气。
我做错了什么?
答案 0 :(得分:1)
您需要将then
与您的承诺一起使用。
asyncInit().then(function(data){
$scope.deferredPersons = data;
});
从此处开始,您可以按常规访问您的数据,并可以在其上调用.length
。注意,使用promises时应始终处理错误,否则很难调试。
答案 1 :(得分:0)