1

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

4

1 回答 1

2

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

Ember 的等效 Coffeescript 将是,

App.SidebarController = Ember.ObjectController.extend
  namez: (->
    @get('name')
  ).property()
于 2013-06-28T16:33:27.953 回答