解决路线

时间:2015-06-30 20:03:25

标签: angularjs angular-ui-router promise angular-promise angular-resource

尝试将已解析的数据发送到我的控制器。事情很好解决,只是无法弄清楚如何将它传递给我的控制器。现在,当我尝试注销已解析的数据时,我得到了未定义。

我的模块:

angular.module('projects').config(['$stateProvider',
    function($stateProvider) {
        $stateProvider
        .state('view', {
            url: '/:projectId',
            templateUrl: 'view.html',
            controller:'ProjectsClientController',
            resolve:{
                projectaa:function(apiResource, $stateParams){
                    apiResource.get({api_resource:'projects', api_value:$stateParams.projectId}).$promise.then(function(response){
                            return response;
                    }); 

                }
            }
        })
    }
])



angular.module('projects').controller('ProjectsClientController', ['$scope', '$stateParams', 'projectaa',
    function($scope, $stateParams, projectaa) {
        console.log(projectaa);


    }
]);

我做错了什么?

1 个答案:

答案 0 :(得分:3)

它还应该返回apiResource.get的承诺,以便可以在控制器内访问promise链.then函数

<强>代码

projectaa: function(apiResource, $stateParams) {
    return apiResource.get({
        api_resource: 'projects',
        api_value: $stateParams.projectId
    }).$promise;
}

在内部控制器中,您可以使用.then

解析该承诺来获取数据

<强>控制器

projectaa.then(function(data){
   console.log(data); //you will get promise resolved here
   //which will return data here
})