Ember与locationsParams相对

时间:2016-10-26 08:29:31

标签: ember.js handlebars.js htmlbars

在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。

1 个答案:

答案 0 :(得分:1)

更新我的误解解决后:

您希望拥有spread operator。您可以查看此讨论12。现在,您可以获取数组并在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}}