2017-06-08 3 views
0

https://github.com/akveo/ng2-smart-table 設定オブジェクトでは、name、titleなどのフィールドを表示する構造体を定義します。オブジェクトを列に直接割り当てる必要があります。 this.unitsng2スマートテーブルでカスタム配列オブジェクトをプッシュする方法

が、その作業はありません: オブジェクトは、私は=>
リストを割り当てる

array =>units[]= { value: 'bowl', title: 'bowl' },{ value: 'tbspn', title: 'tbspn' } 

を作成する必要がフィールド

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' } 
      ] 
     } 
     } 
    }, 

が含まれています。 Webサービスコールで配列を取得する場合があります。

答えて

0

Webサービスから配列を受け取ったら、要素をマップしてスマートテーブルで使用される構造に変換します。マップ参考

:の配列ビルド

config.list = unitsFromWebservice.map(function(unit) { 
    return { value: unit, title: unit }; 
}); 
1
  1. Array.map

    それはのようになり{値:単位、タイトル:単位は}

  2. オブジェクトの設定を再割り当てオブジェクト新しいオブジェクトとして

コード:

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); 
関連する問題