JavaScript/Angular:如何从同一对象的数组初始化属性?
这是我想在一个有角度的工厂里做的:JavaScript/Angular:如何从同一对象的数组初始化属性?,javascript,angularjs,Javascript,Angularjs,这是我想在一个有角度的工厂里做的: app.factory('dataService', function () { return { data: ['5', '10', '20', '50', '100', '200'], selectedData: data[0], }, }, ) 基本上,我想将selectedData初始化为预定义数据数组的一项。此代码返回未定义的数据。如果使用此.data[0],则会出现错误:无法读取未定
app.factory('dataService', function () {
return {
data: ['5', '10', '20', '50', '100', '200'],
selectedData: data[0],
},
},
)
基本上,我想将selectedData初始化为预定义数据数组的一项。此代码返回未定义的数据。如果使用此.data[0],则会出现错误:
无法读取未定义的
的属性“0”。那么,如何在此处引用数据?尝试在本地存储对象,然后设置值,最后返回:
app.factory('dataService', function () {
var obj = { data: ['5', '10', '20', '50', '100', '200'] };
obj.selectedData = obj.data[0];
return obj;
}
)
定义对象时不能引用数据。不是这样的
如果你真的确定你想要一个有最终值的对象,那么Troles Larsen的答案就是正确的选择。然而,在许多应用程序中,拥有可以随时为您获取更新数据的对象是明智的。在不知道你的应用程序的情况下很难显示和说出,但这样做看起来像这样
app.factory('dataService', function () {
var result = {
data: ['5', '10', '20', '50', '100', '200'],
getSelectedData: function (index) {
return this.data[index];
}
}
return result;
})
然后在其他任何地方,您都可以访问您想要的内容,这在数据数组可能不稳定的情况下尤其有用。这实际上不会返回他想要的对象(我假设),而只返回“5”。他想要集合和当前选择的值。事实上,我本想展示如何使用对象来获取值。但这是最糟糕的方式。编辑以正确解释我的预期消息。