2017-07-25 2 views
0

J'ai créé une propriété calculée pour concaténer ensemble deux propriétés de modèle et en créer une liste. Il a d'abord travaillé comme celui-ci, qui se traduit par une liste comme ceci: prop1-prop2, prop1-prop2La propriété calculée Ember ajoute une virgule

modelName: Ember.computed(
    return this.get('modelName').map((o) => { 
    return o.get('prop1') + '-' + o.get('prop2'); 
    }).join(', '); 
}) 

Puis je l'ai changé à ce qui aboutit à la même liste:

modelName: Ember.computed(
    return this.get('modelName').map((o, i) => { 
    return (i > 0 ? ' ' : '') + o.get('prop1') + '-' + o.get('prop2'); 
    }); 
}) 

Ma question est, où est la deuxième propriété calculée obtenant la virgule à mettre dans la liste séparée par des virgules? Le code initial que j'ai essayé était (i> 0? ',': '') Mais cela ajoutait deux virgules. Quelqu'un peut-il expliquer?

Répondre

1

Vous avez oublié de renvoyer le résultat.

modelName: Ember.computed('modelName', 
    return this.get('modelName').map((o, i) => { 
    return (i > 0 ? ' ' : '') + o.get('prop1') + '-' + o.get('prop2'); 
    }); 
}) 

et aussi je vous encourage à clé dépendante modelName

+0

Il donne le même résultat avec ou sans ce retour. La question que je pose est de savoir d'où provient la virgule. –

+0

Quand vous faites '{{arrayProperty}}' - alors il l'imprimera avec une virgule séparée par défaut. Qu'est-ce que vous voulez faire ici? .. vous avez '' {{# each' bloc pour l'itérer en hbs – kumkanillam

+0

Je définis la propriété calculée comme une propriété d'un ember-datatable défini en utilisant array-helper. Le modèle étant passé dans le datast hasMany modelNames, ils doivent donc être transformés en une liste comme celle-ci pour être transmis dans un champ dans le datatable. Peut-être que le composant array-helper s'imprime également par des virgules. Je vais regarder dedans. Merci! –