我尝试在工厂内使用$ scope存储一个值,但我不能。
我也尝试将值推送到数组中,它不起作用。
我只想将一个回调值复制到一个变量中,以便从工厂返回。
这是一个示例:
var cpy = {};
$http.get('/api/things/')
.success(function (data){
cpy = data;
})
.error(function (err){
});
console.log(cpy);
感谢您的帮助。
答案 0 :(得分:1)
这几乎就是你所需要的。
你的工厂应该是这样的:
var getCopy = function(){
return $http.get('/api/things/');
}
在您的控制器中,您可以这样:
myfactory.getCopy().success(function(data){
$scope.myscopedvar = data;
});
如果你想在你的范围内有一些绑定,它总是在控制器中完成。如果是异步调用,则控制器有责任知道$ http承诺解析时要执行的操作。
希望它有所帮助,如果你想要更多解释,请随时提出。
答案 1 :(得分:0)
感谢Maxim,Okazari和user3227295。
我的工厂看起来像这样:angular.module('feedbackApp').factory('Data', function ($http, $q, Auth) {
$http.get('/api/things/')
.success(function (data){
cpy = data;
})
.error(function (err){
});
return {first : true};
});
我只想检查cpy是否为空以返回false并为空变量返回true。
很抱歉没有太多准确地问这个问题。
谢谢。