工厂返回数据后未设置角度$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}}
时,它显示{}
。
这是关于jsfiddle 的问题
为什么$scope.balance
没有正确设置数据?
由于balance
是异步的,您不能直接从中返回。您需要在then
回调中设置您的作用域值。
dogeFactory.balance('D8EyEfuNsfQ3root9R3ac54mMcLmoNBW6q').then(function(data){
console.log(data);
$scope.balance = data;
});
相关文章:
- 如何在多个控制器之间封装设置$scope值
- 在 ng-click 中设置$scope变量指令
- 将服务中的函数绑定到$scope(错误:无法设置undefined的属性'onChange')
- 工厂返回数据后未设置角度$scope
- AngularJS:如何在设置了$scope.var之后才在视图中设置$scope.var
- 设置$scope.parameter,ui路由器
- $scope变量未定义,尽管它是在$watch函数内部设置的
- 为什么从指令中更改外部作用域需要 scope.$apply(),即使我将范围选项设置为 false
- 角度$scope首先设置值而不是服务,然后第二个函数调用一切正常
- 尝试将数据数组设置为从视图调用函数后$scope
- 如何通过角度 ui-grid 中来自$scope的数据动态设置指令
- 角度$scope值以相反的顺序设置
- 无法在 Angular 中设置$scope值
- AngularJS:将目标(类似于焦点)设置为任何$scope属性
- 如何从变量中设置$scope值$rootScope
- 使用$scope变量设置Datepicker最小/最大日期
- 使用AngularJS中pouchDB的数据设置$scope变量的值
- 如何通过$routeParams将$scope变量设置为true
- 如何使用Angular 1.5 component()方法将scope设置为false
- 从AngularJS中的$http服务设置$scope值的最佳方式