2017-07-25 5 views
0

Ich erstellte eine berechnete Eigenschaft, um zwei Modelleigenschaften zusammen zu fassen und eine Liste von ihnen zu erstellen. Es war zunächst wie diese, die wie so in einer Liste führt: PROP1-prop2, PROP1-prop2Ember berechnete Eigenschaft fügt Komma hinzu

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

Dann habe ich es, dies zu, die in der gleichen Liste führt:

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

Meine Frage ist, wo wird die zweite berechnete Eigenschaft das Komma in die kommagetrennte Liste eingefügt? Der ursprüngliche Code, den ich ausprobierte, war (i> 0? ',': ''), Aber das fügte zwei Kommata hinzu. Kann mir jemand erklären?

Antwort

1

Sie haben vergessen, das Ergebnis zurückzugeben.

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

und auch werde ich Sie ermutigen, abhängigen Schlüssel modelName

+0

Es gibt das gleiche Ergebnis zu haben, mit oder ohne diese Rückkehr. Die Frage, die ich stelle, ist, woher das Komma kommt. –

+0

Wenn Sie '{{arrayProperty}}' - dann wird es mit Komma getrennt standardmäßig gedruckt. Was willst du hier erreichen? .. du have '{{# each' Block, um es in hbs – kumkanillam

+0

zu iterieren Ich setze die berechnete Eigenschaft als eine Eigenschaft einer Glutar-Datentabelle definiert mit Array-Helfer. Das Modell, das in die Datentabelle übergeben wird, hat viele Modellnamen, daher müssen sie in eine Liste wie diese gebracht werden, um in ein Feld in der Datentabelle übertragen zu werden. Vielleicht druckt die Array-Hilfskomponente auch standardmäßig mit Kommas. Ich werde es mir ansehen. Vielen Dank! –

Verwandte Themen