我有一个带工厂和控制器的Angular应用程序:
.factory('dogeFactory', ['$resource', function ($resource) {
var dogeResource = $resource("https://dogechain.info/api/v1/address/balance/:address");
return {
balance: function(address){
return dogeResource.get({address: address}).$promise
.then(
function(data){
return data.balance;
}
);
},
}
}])
.controller('TwoController', function($scope, dogeFactory){
$scope.balance = dogeFactory.balance('D8EyEfuNsfQ3root9R3ac54mMcLmoNBW6q').then(
function(data){
console.log(data);
return data;
});
控制器中的console.log(data);
会显示正确的数据,但当我在视图中调用{{balance}}
时,会显示{}
。
为什么$scope.balance
未正确设置数据?
答案 0 :(得分:4)
由于balance
是异步的,因此您无法直接从中返回。您需要在then
回调中设置范围值。
dogeFactory.balance('D8EyEfuNsfQ3root9R3ac54mMcLmoNBW6q').then(function(data){
console.log(data);
$scope.balance = data;
});