저는 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}}
은 빈 배열을 생성합니다.
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