속성이 있지만 JavaScript 객체의 속성에 액세스 할 수 없습니다. AngularJS에서 Factory 객체의 속성에 액세스하려고합니다.캔트에 액세스 JavaScript 객체의 속성
angular.module("appManager")
// factories.js
.factory("DataFactory", function ($http) {
var fac = {};
fac.expenses = {};
$http.get("mvc/m/revenue.json")
.success(function (result) {
console.log(result); // line 9
fac.expenses = result.expenses;
});
console.log(fac); // line 13
return fac;
})
// expenseController.js
.controller("expenseCtrl", function($scope, DataFactory){
$scope.data = DataFactory.expenses;
console.log(DataFactory); // line 4
console.log(DataFactory.expenses); // line 5
console.log($scope.data); // line 6
// Global // var d = {};
d = DataFactory;
e = DataFactory.expenses;
});
그리고 콘솔의 OUPUT : 아래 코드는
사람도 이것에 대해 (here) 요청하지만 그는 해결책을하지 않았다. 나는 또한 거기에 제안 된 시도 : 키를 사용하여 콘솔 "정의되지 않은 함수"오류가 throw됩니다. $http
내부의 로그에있는 log() // 9
이 다른 함수보다 나중에 호출됨을 알 수 있습니다. 이것이 이유 일 수 있습니까? 그러나 log() // 13
수 있습니다 이미 개체를 인쇄하십시오.
AngularJS에 문제가있을 수 있다고 생각했는데 동일한 결과를 제공하는 테스트 용으로 글로벌 변수 d and e
을 시도했습니다. DataFactory["expenses"]
같은 결과
누군가가 내가 뭘 잘못 말해 주시겠습니까 :
는 또한 첨자를 시도?를
CONSOLE.LOG과 같을 것이다 상속 인쇄되지 않습니다 속성 – Ven
@Ven 상속 된 속성은 무엇입니까? –
'd.expenses'에 데이터가 있지만'e'가 없다면,'d.expenses' (또는'DataFactory.expenses') 어딘가가 다른 객체로 바뀌므로'e'와는 다른 것을 의미합니다. – Oriol