如何从函数I函数内部的函数中访问数据?
projectsRsrc.factory('projectsSrvc', ['$resource', function($resource){
return function(name){
var url = "http://localhost/proj/v3/apiSimulations/projects.json";
var resource = $resource(url);
return resource.get(function(data){
return data;
});
}
}]);
我想在我的控制器中获取此数据。
projectsApp.controller('projectsCtrl', ['$scope', 'projectsSrvc', function($scope, projectsSrvc){
$scope.projects = projectsSrvc(name);
}
但是projectsSrvc
返回一个函数,我不确定如何访问它返回的函数。最后,我希望在我的控制器中分配data
答案 0 :(得分:1)
您的工厂返回一个函数,该函数返回 promise ,因此在您的控制器中,您的代码应如下所示:
projectsSrvc(name).then(function(data) {
$scope.projects = data;
});
编辑:我将$ resource与$ http混合在一起,所以事情看起来有点不同,但是这里解释了所有内容:https://docs.angularjs.org/api/ngResource/service/ $ resource
我通过将代码更改为此来实现它:
projectsSrvc(name).$promise.then(function(data) {
$scope.projects = data;
});
答案 1 :(得分:0)
你只需要另一套parantheses
$scope.projects = projectsSrvc(name)(argumentmustbepassedhereforthefunction);
但请注意,当你从异步的ajax调用返回时,你需要一些回调类的东西(或承诺可能是?)。
顺便说一句,上面的代码只是
的单行代码var func = projectsSrvc(name); // store the function reference
$.scope.projects = func(argumentmustbepassedhereforthefunction);