1
나는 angularjs를 처음 사용합니다. 내가 공장에서 함수를 호출하려고하지만 아래의 오류가 발생하고, 팩토리 메서드 호출시 Angularjs 오류
Error: [$injector:undef] Provider 'todoStorage' must return a value from $get factory method.
이
내 공장,todomvc.factory('todoStorage', function ($q,$http) {
var STORAGE_ID = 'todos-angularjs-perf';
function get(){
var promise = $q.defer();
$http.get('http://localhost/test.php').success(function(data){
promise.resolve(data);
});
return promise.promise;
}
});
이다 그리고이 함수를 호출하는 방법이있다
var todos = $scope.todos = todoStorage.get();
정확히 무슨 일이 일어나고 있으며이 오류가 발생하는 이유는 무엇입니까?
오류가 해결되었지만 데이터를 가져 오지 못하는 이유는 무엇입니까? 약속은 null을 반환합니다. 연기하면 호출이 동기화됩니까? –
서비스 내부가 아닌 호출 측에서 약속을 해결하는 것이 좋습니다. 또한 $ q의 구현에 따라 약속이 즉시 해결 되더라도 약속은 결코 동 기적으로 작동하지 않습니다. – TGH
여기에 새로운 약속을하지 않겠습니다. $ http로 생성 된 원래 약속을 반환하는 것이 더 쉽습니다. – TGH