2016-04-16 72 views
1

后,我有一个角应用与工厂和控制器:

.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}}在视图中,它显示{}

Here is the issue on jsfiddle

为什么$scope.balance不与数据是否设置正确?

回答

4

由于balance是异步的,您不能直接从它返回。您需要在then回调中设置范围值。

dogeFactory.balance('D8EyEfuNsfQ3root9R3ac54mMcLmoNBW6q').then(function(data){ 
    console.log(data); 
    $scope.balance = data; 
});