https://github.com/akveo/ng2-smart-table 在设置对象中,我们定义结构以显示名称,标题等字段。我想直接将对象分配给列。 对象包含字段
only.settings = {
editable: false,
mode: 'inline',
add: {
confirmCreate: true
},
edit: {
confirmSave: true,
},
actions: {
delete: false
},
columns: {
food: {
title: 'Food',
filter: false,
},
quantity: {
title: 'Quantity',
filter: false,
},
unit: {
title: 'Unit',
filter: false,
editor: {
type: 'list',
config: {
list: [
{ value: 'gm', title: 'gm' },
{ value: 'slice', title: 'slice' },
{ value: 'cup', title: 'cup' },
{ value: 'glass', title: 'glass' },
{ value: 'pcs', title: 'pcs' },
{ value: 'ml', title: 'ml' },
{ value: 'bowl', title: 'bowl' },
{ value: 'tbspn', title: 'tbspn' }
]
}
}
},
我必须创建
array =>units[]= { value: 'bowl', title: 'bowl' },{ value: 'tbspn', title: 'tbspn' }
想分配=>
list:this.units
但它不起作用。 在我通过网络服务电话获得阵列的情况下。
答案 0 :(得分:1)
代码:
const options = [];
for (const unit of units) {
options.push({ value: unit.val, title: unit.name });
}
this.settings.columns.unit.editor.config.list = options;
this.settings = Object.assign({}, this.settings);
答案 1 :(得分:0)
从webservice收到数组后,映射元素以转换为智能表中使用的结构。
对于地图参考:Array.map
这将是:
config.list = unitsFromWebservice.map(function(unit) {
return { value: unit, title: unit };
});