功能原型是否会在Ember 2中消失?

时间:2015-05-14 12:17:59

标签: ember.js ember-cli

自从https://github.com/Atmosphere/atmosphere/wiki/Configuring-Atmosphere发布最新的Ember以来,似乎有一种新的setter和getter方法语法。

我们应该习惯这样做:

fullName: Ember.computed('firstName', 'lastName', function() {
  return this.get('firstName') + ' ' + this.get('lastName');
})

而不是:

fullName: function() {
  return this.get('firstName') + ' ' + this.get('lastName');
}.property('firstName', 'lastName')

1 个答案:

答案 0 :(得分:5)

简短的回答:不,等待装饰者降落在Ember然后切换。

更长的回答: 声明计算属性的function() { }.property()方式取决于扩展函数原型。扩展JavaScript'原语'的原型。有时被视为一种不良做法。

Ember.computed(function() { })方式与前者相同,但现在不使用原型扩展。

目前正在讨论Ember.js github上哪种方式更好。你可以找到它here

同样在不久的将来,使用装饰器声明计算属性的另一种更清洁的方法应该是Ember。然后计算出的属性如下所示:@computed foo() { }。您链接到的博客文章中也提到了这些内容。您可以在here找到更多详细信息。

我的意见是你应该等待装饰者然后进行切换。