我想调用Angular服务函数" getDecks()"来自控制器" menuBarCtrl"。我想在getDecks()返回我的JSON文件的内容之后将文件的内容存储在本地$ scope变量中。
然而,我只得到一个未定义的'如果我尝试在控制台中显示该值。
ajapp.controller('MenuBarCtrl', function($scope, $http, CardProvider) {
$scope.decks = CardProvider.getDecks();
console.log($scope.decks);
});
ajapp.service('CardProvider', function($http) {
this.getDecks = function(){
var json;
$http.get('content/SetList.json').success(function(data, status){
json = data;
}).error(function (data, status) {
alert("File Request Failed ["+status+"]");
});
return json;
}
});
答案 0 :(得分:0)
问题不是有角度的,而是JS异步性。
这似乎是你想要实现的目标:
ajapp.controller('MenuBarCtrl', function($scope, $http, CardProvider) {
CardProvider.getDecks()
.then(function(data) {
$scope.decks = data;
})
.catch(function (data, status) {
/* handle error*/
});
});
ajapp.service('CardProvider', function($http) {
this.getDecks = function(){
return $http.get('content/SetList.json');
}
});