如何使用 ES6 在 Ember 中声明可观察对象或计算属性?
How to declare observables or computed properties in Ember using ES6?
尝试将 ES6 用于我的所有 Ember 工作。我有以下 ES6 语法问题:
如何将标准 ES5 对象文字计算 属性 转换为 ES6 语法?
ES5:
export default Ember.Controller.extend({
foo: function() {
return "bar";
}.property()
});
ES6:
export default Ember.Controller.extend({
foo() {
return "bar"
}.property()
});
到目前为止我所拥有的似乎没有用,因为 .属性 没有被正确引用。这是如何实现的?
ES6 仅在 class 内部支持该语法。我不确定 Ember 以与标准 JavaScript.
兼容的方式公开其 class 系统
我强烈建议不要使用原型扩展。也就是说,您总是会这样做:
foo: Ember.computed('bar', function() {
return this.get('bar');
})
我读起来好多了。
以下似乎适用于 Ember 1.13:
export default class extends Ember.Controller {
constructor(...args) {
super(...args);
this.foo = Ember.computed('bar', function() {
return this.get('bar');
});
}
}
注意 "export default class" 以及在构造函数中定义函数的稍微烦人的方面。
您也可以拆分函数定义:
export default class extends Ember.Controller {
constructor(...args) {
super(...args);
this.foo = Ember.computed('bar', this.foo);
}
foo() {
return this.get('bar');
}
}
但是将函数的计算性质与函数本身分开会带来不利影响。
很想听听其他人的想法,因为我更喜欢定义 类 的 ES6 风格。
使用新的 getter 语法:
foo: Ember.computed('bar', {
get() {
return this.get('bar');
}
})
尝试将 ES6 用于我的所有 Ember 工作。我有以下 ES6 语法问题:
如何将标准 ES5 对象文字计算 属性 转换为 ES6 语法?
ES5:
export default Ember.Controller.extend({
foo: function() {
return "bar";
}.property()
});
ES6:
export default Ember.Controller.extend({
foo() {
return "bar"
}.property()
});
到目前为止我所拥有的似乎没有用,因为 .属性 没有被正确引用。这是如何实现的?
ES6 仅在 class 内部支持该语法。我不确定 Ember 以与标准 JavaScript.
兼容的方式公开其 class 系统我强烈建议不要使用原型扩展。也就是说,您总是会这样做:
foo: Ember.computed('bar', function() {
return this.get('bar');
})
我读起来好多了。
以下似乎适用于 Ember 1.13:
export default class extends Ember.Controller {
constructor(...args) {
super(...args);
this.foo = Ember.computed('bar', function() {
return this.get('bar');
});
}
}
注意 "export default class" 以及在构造函数中定义函数的稍微烦人的方面。
您也可以拆分函数定义:
export default class extends Ember.Controller {
constructor(...args) {
super(...args);
this.foo = Ember.computed('bar', this.foo);
}
foo() {
return this.get('bar');
}
}
但是将函数的计算性质与函数本身分开会带来不利影响。
很想听听其他人的想法,因为我更喜欢定义 类 的 ES6 风格。
使用新的 getter 语法:
foo: Ember.computed('bar', {
get() {
return this.get('bar');
}
})