function getMenus() {
if (!localStorage.getItem('menus')) {
var defer = $q.defer();
$http.get('api/menu').success(function (res) {
// scope.menuList = res;
localStorage.setItem('menus', res)
defer.resolve();
return defer.promise;
}).error(function (err) {
defer.reject()
return defer.promise;
});
}
}
getMenus().then(function () {
scope.menuList = localStorage.getItem('menus')
})
返回结果是angular.min.js:107 TypeError: Cannot read property 'then' of undefined
请问哪里错了。。。。。
L'erreur est signalée car la fonction getMenus n'a pas de valeur de retour, js renvoie undéfini par défaut, puis se déclenche sur undéfini, donc l'erreur est signalée
Solution :
Initialiser dans la première ligne de getMenus
Enfin, renvoyez defer.promise comme valeur de retour
Cela devrait être le résultat final
Bien sûr, il y aura des problèmes si vous renvoyez des promesses dans les rappels de réussite et d'erreur