例子:
代码如下 | 复制代码 |
App.Person = Ember.Object.extend({ |
在 handlebars 模板里使用:
我的名字叫{{firstName}}{{lastName}},{{gender}}性,今年{{age}}岁。
假定我还想根据 age 的值来划分「幼年」、「少年」、「青年」、「壮年」、「老年」又如何?
Ember.js 提供的计算的属性可以很方便地解决这种问题,只需要给 Person 类增加一个属性 – 唯一的区别是,这个属性不是静态的,而是动态的一个函数:
代码如下 | 复制代码 |
App.Person = Ember.Object.extend({ |
注意函数后紧跟着的 property,它声明了该计算的属性与其他属性的依赖关系。age 值如果有变化,它的值会自动更新。
创建对象实例时,我们不需要传入计算的属性参数,
代码如下 | 复制代码 |
App.Person.create({ |
Ember.js 会自动生成 ageClass,可直接在前端模板上使用:
我的名字叫
代码如下 | 复制代码 |
{{firstName}}{{lastName}},{{gender}}性,今年{{age}}岁,据称属于{{ageClass}}。 |
渲染后的内容为:
我的名字叫三陈,男性,今年18岁,据称属于青年。
类似的问题,除了使用计算的属性外,我们还可以用 Handlebars 助手2,不过我个人更喜欢用计算的属性,因为它们多数跟其他静态属性相关,写在类定义里会更直观