컨트롤러에 엄청난 json 오브젝트가있어 별도의 파일로 나가고 싶습니다. 지금까지 나는이 일을 해요 : 유래에 here 설명으로 AngularJS 팩토리로 json 데이터로드
myApp.controller('smController', ['$scope', function($scope) {
...
var stadtmobilRates = {
classic: {
A: {
night: 0,
hour: 1.4,
day: 21,
week: 125,
km000: 0.2,
km101: 0.18,
km701: 0.18
},
...
}
};
나는 공장과 약속을 사용하고 있습니다 :
myApp.factory('stadtMobilRates', function($http) {
var promise = null;
return function() {
if (promise) {
// If we've already asked for this data once,
// return the promise that already exists.
return promise;
} else {
promise = $http.get('stadtmobilRates.json');
return promise;
}
};
});
myApp.controller('smController', ['$scope', function($scope, stadtMobilRates) {
var stadtmobilRates = null;
stadtMobilRates().success(function(data) {
stadtmobilRates = data;
});
지금 나는 stadtMobilRates().success(function(data) {
에서 TypeError: undefined is not a function
받고 있어요 선. 컨트롤러에 주입 했는데도 stadtMobilRates
팩토리가 허용되지 않는 이유는 무엇입니까?
편집 # 1 : 나는 새우가 제안한대로 공장 이름을 배열에 추가했습니다.
myApp.controller('smController', ['$scope', 'stadtMobilRates', function($scope, stadtMobilRates) {
var stadtmobilRates = null;
stadtMobilRates().success(function(data) {
stadtmobilRates = data;
});
console.log(stadtmobilRates);
그러나 stadtmobilRates null
입니까?
편집 # 2 : Plunker에 내 앱의 단순화 된 버전을 만들었습니다. 잘 작동합니다. 전체 앱에서 나는 이 여전히 null
인 다른 경로로 작업하고 있습니다. 경로가있는 전체 앱의 플 런커를 만들 수 없습니다. 여기 GitHub에 대한 전체 코드가 있습니다. 위의 코드는 Line 159입니다. 나는 그것이 내 길과 관련이 있다고 생각하니?
당신이 그것을 로그인 할 때 데이터도 설정되어있는 함수를 호출입니까? 'console.log (stadtmobilRates);를 퍼포먼스 안에 넣는다. – prawn
비동기 프로그래밍 중입니다. console.log를 콜백에 넣으십시오. –
$ http 요청의 json 파일에 대한 프로젝트 URL이 정확합니까? – arman1991