gpt4 book ai didi

javascript - 提供 Json AngularJS 的服务

转载 作者:行者123 更新时间:2023-12-01 03:45:21 26 4
gpt4 key购买 nike

您好,我在使用此服务时遇到问题

app.service('myStorage',function($http, $localStorage){
this.getFilms = function(){
/* Carga la lista de peliculas de localStorage si existe*/
if ($localStorage.films && $localStorage.films.length!=0) {
return $localStorage.films;
console.log($localStorage.films);
}else{
$http.get("json/films.json")
.then(function(res){
console.log(res.data);
return res.data;
});
}
}

});

这个 console.log 工作正常,并给我一个对象数组,但在 Controller 中:

function($scope, $mdDialog, $http, $localStorage, myStorage) {
$scope.films=myStorage.getFilms();
console.log($scope.films);

控制台显示未定义,有什么帮助吗?

最佳答案

你应该返回一个 promise 。像这样:

app.service('myStorage',function($http, $localStorage, $q){
this.getFilms = function(){
if ($localStorage.films && $localStorage.films.length!=0) {
return $q.when($localStorage.films);
} else {
return $http.get("json/films.json").then(function(res){
console.log(res.data);
return res.data;
});
}
}
});

现在在 Controller 中,

function($scope, $mdDialog, $http, $localStorage, myStorage) {
myStorage.getFilms().then(function(res) {
$scope.films = res;
console.log($scope.films);
})
...
})

关于javascript - 提供 Json AngularJS 的服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43611054/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com