0

저는 AngularJS 튜토리얼의 테스트와 매우 유사한 테스트 응용 프로그램을 만들었습니다. 주요 차이점은 다음과 같습니다. 첫 번째 차이점은 Yeoman으로 초기화되었습니다.

내 공장 코드는 다음과 같습니다

var deClashServices = angular.module('deClashServices', ['ngResource']); 

deClashServices.factory('Session', 
    ['$resource', 
    function ($resource) { 
    return $resource('views/sessions.json'); 
    }] 
); 

예, 각-resource.js은 index.html을 추가되었습니다. 내 Controller 및 Service js 파일은 물론. 내 app.js 여기에서 볼 수 있듯이 예, deClashServices이는 NG-응용 프로그램에 대한 종속성으로 나열되었습니다 main.html에서

var deClashControllers = angular.module('deClashControllers', []); 

deClashControllers.controller('MainCtrl', 
    ['$scope', 'Session', 
    function ($scope, Session) { 
     $scope.sessions = Session.query(); 
     $scope.awesomeThings = [ 
      'HTML5 Boilerplate', 
      'AngularJS', 
      'Karma' 
     ]; 
    }] 
); 

입니다 : 여기

var declashAngularApp = angular.module('declashAngularApp', [ 
    'ngRoute', 

    'deClashServices', 
    'deClashControllers' 
]); 

declashAngularApp.config(['$routeProvider', 
    function($routeProvider) { 
    $routeProvider 
     .when('/', { 
     templateUrl: 'views/main.html', 
     controller: 'MainCtrl' 
     }) 
     .when('/sessions', { 
     templateUrl: 'views/sessions.html', 
     controller: 'SessionListCtrl' 
     }) 
     .otherwise({ 
     redirectTo: '/' 
     }); 
    }]); 

및 내 컨트롤러입니다 MainCtrl에서 {{awesomeThings}}은 예상대로 3 개의 문자열 배열을 생성합니다. 그러나 {{sessions}}은 빈 배열을 생성합니다.

는 것을 파악하려면()을로드 아니에요, 나는 간단한 JSON 파일과 공장을 사용하여 시도하는 .query :

deClashControllers.controller('MainCtrl', 
    ['$scope', 'Session', 
    function ($scope, Session) { 
     $scope.sessions = {}; 
     Session.get(function(response) { 
      $scope.sessions = response.sessions; 
     }); 
     $scope.awesomeThings = [ 
      'HTML5 Boilerplate', 
      'AngularJS', 
      'Karma' 
     ]; 
    }] 
); 
: {"sessions":"number1"}

deClashServices.factory('Session', 
    ['$resource', 
    function ($resource) { 
    return $resource('views/simple.json'); 
    }] 
); 

그리고 내 컨트롤러는 다음과 같이이다

이 코드는 작동합니다. 그러나 JSON 배열로 전환하고 .query.$promise.then(callback-function)으로 콜백을 시도하면 작동하지 않습니다.

AngularJS의 튜토리얼 코드가 거의 똑같은 구조로 작동하여 꽤 혼란스럽고 혼란 스럽습니다.

나는 .query()을 사용하는 방식에 뭔가 문제가 있다고 생각하지만 동시에 동일한 방법이 각도 튜토리얼에 사용되고 거기에 문제가 없습니다. github

답변

0

각도의 자원 봉사 나던 반환 약속 : 그냥이 전체 프로젝트에 대한 코드 여기에, 내가 보여준 몇 가지 코드 조각 외부에있을 경우

. 빈 객체를 반환하므로 요청이 서버 resource-service에서 반환 될 때 해당 객체에 대한 참조가 있기 때문에 서비스가 가져온 데이터로 객체를 채울 수 있습니다.

반환 데이터에 반응하고 싶다면 은 약속을 되 돌리므로$ http-service를 사용하십시오. 이 plkr

에서

봐 나는 또한 당신이 Restangular

를 살펴 추천