我正在使用最新版本的余烬(1.13.5),但希望符合Ember 2.0。

我想创建一个具有一个输入参数和一些内部逻辑的组件,以计算两个以上的值,因此组件模板具有3个字段,这些字段具有对变量的绑定。

如果这是普通模板,则可以与控制器很好地配合使用。但是组件没有控制器。 Ember.Component子类有什么可能?

\templates\components\my-component.hbs中定义的组件:

<h1>{{value1}}<h1>
<h2>{{value2}}<h2>
<h3>{{value3}}<h3>


在模板中使用:

{{my-component value1=34}}


然后在某些地方定义值2和值3的JavaScript:

value2 = value1 *3;
value3 = value2 *6;


在哪里放置此javascript,以便value2和value3在我的组件中可用?
(这只是一个简单的示例。value2和value3的真实逻辑更加复杂,但仅基于value1。)

最佳答案

是的,当然可以,您可以将其放在已定义的组件类中。

您的组件可能确实是\templates\components\my-component.hbs而不是\templates\components\my-component.js。您需要做的是为组件\components\my-component.js定义一个类。

如果使用的是Ember-cli,并且已经使用了脚手架,则该脚手架可能已经存在,然后将计算的属性放置在其中以完成value2和value3。

如果不是,它将看起来像这样(除非您正在使用全局变量)。

import Ember from "ember";

export default Ember.Component.extend({
  value2: Ember.computed('value1', function() {
    //....
  })
});

07-24 09:50
查看更多