控制器属性显示为[对象对象](使用coffeescript时)

时间:2013-06-28 16:23:46

标签: ember.js coffeescript

我有一个用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版本没有返回正确值的任何想法?

1 个答案:

答案 0 :(得分:2)

Coffeescript的extends关键字执行基于原型的基本继承。 Ember的扩展实际上是一个更复杂的对象系统,它提供了getter和setter,计算属性等等。 2不等同。

Ember的等效Coffeescript将是,

App.SidebarController = Ember.ObjectController.extend
  namez: (->
    @get('name')
  ).property()