如何将表达式和字符串的混合指定为ember组件的类?

时间:2017-08-18 02:07:45

标签: ember.js handlebars.js

我想做这样的事情

{{#my-custom-component class="some-class-name {{dynamicProperty}}" }}

但这实际上是将some-class-name {{dynamicProperty}}渲染为类名,而不是它所代表的值。

2 个答案:

答案 0 :(得分:1)

你已经在一个表达式中,所以你想要放弃{{ - 以及这种情况下的引号 - 因为它不是一个字符串。 :)

<div class='{{exampleClass}}'>message in template</div>

{{!-- vs --}}

{{#example-component class=exampleClass}}message in component{{/example-component}}

这是您的组件&#39;控制器&#39;基本上是:

export default Ember.Component.extend({
  tagName: 'section',
  classNames: ['class-from-component-controller'],
});

模板的范围(同名)使用此控制器,因为它的内存&#39;在某种方式。 - 所以,你可以使用内置属性&#39; classNames&#39;数组 - 在控制器/或模板中。

{{#example-component class='strong-voice' classNames=exampleClass}}
    message in component
{{/example-component}}

twiddle example

答案 1 :(得分:0)

使用concat帮助程序:

{{#my-custom-component class=(concat 'some-class-name' dynamicProperty) }}