2016-10-26 7 views
0

In einer Ember-Komponente ist es möglich, eine positionalParams-Eigenschaft zu definieren, so dass als Positionsparameter übergebene Parameter als Eigenschaften verfügbar sind. Z. B:Ember Gegenteil positionalParams

let MyComponent = Ember.Component.extend; 
MyComponent.reopenClass({ 
    positionalParams: ['name', 'age'] 
}); 

, wenn es aufgerufen wird: {{my-component "John" 38}} die Eigenschaft name den Wert John und de Eigenschaft hat age hat den Wert 38.

Ich möchte das entgegengesetzte Verhalten haben, aber ich kann nicht finden, ob das möglich ist. Das Verhalten, das ich suche, ist wie folgt:

Anstatt eine Anzahl von Positionsparametern zu übergeben ({{my-comp param1 param2}}) Ich möchte eine Array-Eigenschaft übergeben ({{my-comp positionalArguments=myArray}}), weil es eine dynamische Größe sein kann.

Ich suche nicht nur dieses Verhalten bei Komponenten, sondern auch Helfer: {{ concat firstName " " lastName }} sollte {{ concat positionalArguments=myArray }} werden. Der Helfer sollte in beiden Fällen das gleiche params-array wie das erste Argument erhalten.

+0

'MyComponent' wird mit' reopenClass 'Methode zur Definition von' positionalParams'. Das ist also spezifisch für die Klasse 'MyComponent'. Ich würde sagen, dass positionalParams dynamisch nicht möglich ist. – kumkanillam

Antwort

1

UPDATE Nach meinem mißverstanden wird aufgelöst:

Sie eine spread operator haben wollen. Sie können diese Diskussionen 1, 2 suchen. Fürs Erste können Sie das Array abrufen und die Zuweisung bei init durchführen. Werfen Sie auch einen Blick auf diese SO discussion.

ALTE Antwort

So verwenden Sie keine Array Klammern in Ihrem Positionsparameter Definition:

let MyComponent = Ember.Component.extend; 
MyComponent.reopenClass({ 
    positionalParams: 'myparams' 
}); 

Verwenden Sie es wie folgt aus:

{{my-component 2 'a' 'b'}} 
{{my-component 2 'a' 'b' 4 'c' 7}} 
+0

Ich möchte es auf die andere Weise verwenden, indem Sie eine Eigenschaftsreferenz übergeben (die ein Array ist), und es sollte als die Positionsparameter interpretiert werden. –

+0

@WillemdeWit aktualisiert. – ykaragol