在2个不同的函数之间共享$ scope.data

时间:2014-12-06 08:16:21

标签: javascript angularjs

getTopicContent.request().finally(function(){
    $scope.loader= false;
}).then(function(response){
    $scope.threadContent = response.data;


})


$scope.loadPages = function($scope) {
    console.log($scope.threadContent.totalPages);
}

它返回了undefined的threadContent。 getTopicContent是服务,但我希望$ scope.threadContent可以与$ scope.loadPages函数共享?

1 个答案:

答案 0 :(得分:1)

由于您是异步加载内容,因此不能期望数据以同步方式可用。 loadPages函数在访问数据之前应该依赖promis解析。例如,您可以这样重写代码:

function getContent() {
    return getTopicContent.request().then(function (response) {
        return response.data;
    }).finally(function () {
        $scope.loader = false;
    });
}

$scope.loadPages = function ($scope) {
    getContent().then(function(data) {
        $scope.threadContent = data;
        console.log($scope.threadContent.totalPages);
    });
}

另请阅读此相关问题description