我正在使用最新版本的余烬(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() {
//....
})
});