这里有角度的新手。我正在尝试将数据传递到工厂中以供使用。我试图在角度内使用$ http以某个顺序触发事件。我被指向使用.run来完成第一个人口,将其传递到工厂,然后将其传递给控制器。工厂有一个功能,然后允许我“刷新”与控制器共享的数据。
我收到了一些很好的帮助来设置刷新功能,但是我很难在最初填充数据。这是我的尝试:
.run("getDataForLevels", function($http){
var getIt = $http.get("/assets/images/generated.json")
.success(function(data){
return data;
});
return getIt;
})
.factory("UserService", function($http, getDataForLevels) {
dataFactory = getDataForLevels;
dataFactory.currentData = null;
dataFactory.update = function () {
return $http.get("/assets/images/generated.json")
.success(function(data){
dataFactory.currentData = data;
return data;
});
};
return dataFactory;
});
然后我将UserService的依赖项添加到控制器并将数据传递给控制器。我似乎在押注错误[ng:areq]。任何/所有帮助将不胜感激。谢谢!
答案 0 :(得分:0)
你不能这样做:
.run("getDataForLevels", function($http){
var getIt = $http.get("/assets/images/generated.json")
.success(function(data){
return data;
});
return getIt;
})
它只接受一个参数,作为一个函数。
你可以这样做:.run(function($http,$rootScope){
$http.get("/assets/images/generated.json")
.success(function(data){
$rotScope.data=data;
});
})
.factory("UserService", function($http, $rootScope) {
dataFactory.update = function () {
return $http.get("/assets/images/generated.json")
};
return dataFactory;
});
在控制器注入依赖项中并执行如下操作:
var dataFactory = $rootScope.data;
dataFactory.currentData = null;
UserService.update ()
.success(function(data, status, headers) {
console.log(data);
})
.error(function(data, status, headers, config) {
console.error('error in loading File list');
});