我似乎在将json从我的工厂发送到控制器时遇到了问题
这是我的工厂
.factory("UserService", function($http) {
var LevelsHere;
$http.get("/assets/images/generated.json").success(function(data){
LevelsHere = data;
return LevelsHere;
});
return {
all: function() {
return LevelsHere;
},
first: function() {
return LevelsHere[0];
}
};
})
Run Code Online (Sandbox Code Playgroud)
我只是试图用这个工厂发送json对象(或者它的一部分).我可以在http get里面调试console.log似乎抓住了json就好了.我似乎已经撞墙了,任何帮助都会非常感激.我希望所有广告的第一个功能都能正常运行.谢谢!
我首先通过使用json字符串硬编码levelHere来获得成功,例如var levelsHere = [{"stuff in here"}],但是当我将它移到$ http时它不起作用.
由于您没有$watch查看异步$http.get请求返回的值,因此消费者无法使用更新的值.当$http.get请求返回一个promise时,您可以利用promise并更新promise的成功值then(),如下所示:
var app = angular.module('app', [])
.factory("UserService", function($http) {
var LevelsHere = $http.get("https://api.github.com/users/mralexgray/repos")
.success(function(data){
return data;
});
return {
all: function() {
return LevelsHere;
}
};
})
.controller('controller', function(UserService, $scope){
UserService.all().then(function(data){
$scope.value = data;
});
})
Run Code Online (Sandbox Code Playgroud)