2017-06-08 1 views
0

https://github.com/akveo/ng2-smart-table Dans l'objet paramètres, nous définissons la structure pour afficher les champs tels que le nom, le titre, etc. Je souhaite attribuer directement un objet aux colonnes. objet contient des champsComment faire pour pousser l'objet tableau personnalisé dans la table intelligente ng2

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

Je dois créer

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

voulez affecter =>
liste: this.units

mais ca marche pas. C'est dans le cas où je reçois un tableau par appel de service Web. Après avoir reçu votre tableau du WebService, mappez les éléments à convertir en la structure utilisée dans smart-table.

Répondre

0

Pour référence à la carte: Array.map

Ce serait quelque chose comme:

config.list = unitsFromWebservice.map(function(unit) { 
    return { value: unit, title: unit }; 
}); 
1
  1. Construire un tableau de {valeur: unité, titre: unité} objets
  2. Réaffecter les paramètres objet comme nouvel objet

Code:

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