我有一个用CoffeeScript编写的控制器,如下所示:
class App.SidebarController extends Ember.ObjectController
namez: (->
@get('name')
).property()
当我调用[object Object]
标记时,在我的视图中返回{{namez}}
。
我在JavaScript中重写了相同的控制器,属性按预期打印到模板:
App.SidebarController = Ember.ObjectController.extend({
namez: function() {
return this.get('name');
}.property()
});
有关为什么CoffeeScript版本没有返回正确值的任何想法?
答案 0 :(得分:2)
Coffeescript的extends
关键字执行基于原型的基本继承。 Ember的扩展实际上是一个更复杂的对象系统,它提供了getter和setter,计算属性等等。 2不等同。
Ember的等效Coffeescript将是,
App.SidebarController = Ember.ObjectController.extend
namez: (->
@get('name')
).property()