Angular 工厂返回数据后未设置 $scope
Angular $scope not set after factory returned data
我有一个带有工厂和控制器的 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
没有正确设置数据?
由于 balance
是异步的,您不能直接从中 return。您需要在 then
回调中设置范围值。
dogeFactory.balance('D8EyEfuNsfQ3root9R3ac54mMcLmoNBW6q').then(function(data){
console.log(data);
$scope.balance = data;
});
我有一个带有工厂和控制器的 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
没有正确设置数据?
由于 balance
是异步的,您不能直接从中 return。您需要在 then
回调中设置范围值。
dogeFactory.balance('D8EyEfuNsfQ3root9R3ac54mMcLmoNBW6q').then(function(data){
console.log(data);
$scope.balance = data;
});