在Ember组件中,可以定义positionalParams属性,以便作为位置参数传递的参数可用作属性。 E.g:
let MyComponent = Ember.Component.extend;
MyComponent.reopenClass({
positionalParams: ['name', 'age']
});
调用时:{{my-component "John" 38}}
属性name
的值为John
,属性age
的值为38
。
我想有相反的行为,但我无法确定这是否可行。我正在寻找的行为如下:
我想传递一个数组属性({{my-comp param1 param2}}
),而不是传递一些位置参数({{my-comp positionalArguments=myArray}}
),因为它可以是动态大小。
我不仅要在组件上寻找此行为,还要寻求帮助:{{ concat firstName " " lastName }}
应该成为{{ concat positionalArguments=myArray }}
。在两种情况下,助手应该获得与第一个参数相同的params-array。
答案 0 :(得分:1)
更新我的误解解决后:
您希望拥有spread operator。您可以查看此讨论1,2。现在,您可以获取数组并在init处执行赋值。另请查看此SO discussion。
旧答案
所以不要在位置参数定义中使用数组括号:
let MyComponent = Ember.Component.extend;
MyComponent.reopenClass({
positionalParams: 'myparams'
});
使用它:
{{my-component 2 'a' 'b'}}
{{my-component 2 'a' 'b' 4 'c' 7}}