即使属性存在,我也无法访问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;
});
并在控制台输出中的:
有人还问(here)关于这个,但他并没有得到解决。我也尝试了那里的建议:使用键,控制台会抛出“未定义的函数”错误。你也可以注意到$http
里面的日志里面的log() // 9
被调用比其他函数晚;这是原因吗?但是请注意log() // 13
可以已经打印对象。
我认为AngularJS可能有问题,我尝试了一些全局变量d and e
,用于测试目的,它们也提供了相同的结果。
我也试过标:DataFactory["expenses"]
具有相同的结果
有人可以告诉我什么,我做错了什么?
的console.log不打印继承属性 – Ven
@Ven什么是继承属性? –
如果'd.expenses'有数据,但'e'没有,这意味着d.expenses'(或'DataFactory.expenses')被替换为另一个对象,所以它变得与'e'不同。 – Oriol