这是我想在Angular工厂做的事情:
app.factory('dataService', function () {
return {
data: ['5', '10', '20', '50', '100', '200'],
selectedData: data[0],
},
},
)
基本上,我想将selectedData初始化为预定义数据数组的其中一项。此代码返回data is not defined
。如果我使用this.data [0],我会收到错误:Cannot read property '0' of undefined
。那么,我如何在这里引用数据?
答案 0 :(得分:1)
尝试在本地存储对象,然后设置值,最后返回:
app.factory('dataService', function () {
var obj = { data: ['5', '10', '20', '50', '100', '200'] };
obj.selectedData = obj.data[0];
return obj;
}
)
在定义对象时,无法引用data
。
答案 1 :(得分:0)
那不是this works。
如果你确定你想要一个具有最终价值的物体,那么Troels Larsen的答案就是你要走的路。但是,在许多应用程序中,拥有可以随时为您获取更新数据的对象是明智之举。在不知道你的应用程序的情况下很难显示和告诉,但这样做会看起来像这样......
app.factory('dataService', function () {
var result = {
data: ['5', '10', '20', '50', '100', '200'],
getSelectedData: function (index) {
return this.data[index];
}
}
return result;
})
然后在其他任何地方,您都可以访问您想要的内容 - 这在数据阵列可能不稳定的情况下尤其有用。