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
请问哪里错了。。。。。
getMenus 함수에 반환 값이 없기 때문에 오류가 보고되고, js는 기본적으로 정의되지 않은 값을 반환한 다음 정의되지 않은 경우에 발생하므로 오류가 보고됩니다.
해결책:
getMenus의 첫 번째 줄에서 초기화
으아악마지막으로 defer.promise를 반환 값으로 반환합니다
으아악결국 다음과 같아야 합니다
물론 성공 및 오류 콜백에서 프라미스를 반환하면 문제가 발생합니다
으아악