【问题标题】:Ember opposite of positionalParams与 positionalParams 相对的 Ember
【发布时间】:2017-03-08 12:37:13
【问题描述】:

在 Ember 组件中,可以定义 positionalParams 属性,以便作为位置参数传递的参数可以作为属性使用。例如:

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

当它被调用时:{{my-component "John" 38}} 属性 name 的值为 John,而 de 属性 age 的值为 38

我想有相反的行为,但我找不到这是否可能。我正在寻找的行为如下:

我不想传递多个位置参数 ({{my-comp param1 param2}}),而是传递一个数组属性 ({{my-comp positionalArguments=myArray}}),因为它可以是动态大小。

我不仅在组件中寻找这种行为,还在帮助者中寻找这种行为:{{ concat firstName " " lastName }} 应该变成 {{ concat positionalArguments=myArray }}。在这两种情况下,助手应该获得与第一个参数相同的参数数组。

【问题讨论】:

  • MyComponent 使用reopenClass 方法定义positionalParams。所以这是特定于类MyComponent。我想说动态定义 positionalParams 是不可能的。

标签: ember.js handlebars.js htmlbars


【解决方案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}}

【讨论】:

  • 我想以另一种方式使用它,通过传递一个属性引用(它是一个数组),它应该被解释为位置参数。
猜你喜欢
  • 1970-01-01
  • 2014-03-10
  • 2013-03-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-07
相关资源
最近更新 更多