如何在ng2智能表中推送自定义数组对象

时间:2017-06-08 11:31:47

标签: angular ng2-smart-table

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

但它不起作用。 在我通过网络服务电话获得阵列的情况下。

2 个答案:

答案 0 :(得分:1)

  1. 构建{value:unit,title:unit}对象
  2. 的数组
  3. 将设置对象重新指定为新对象
  4. 代码:

    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 };
});