2013-06-28 38 views
1

我有寫入的CoffeeScript控制器如下:控制器屬性顯示爲[對象對象](使用的CoffeeScript時)

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

當我打電話的{{namez}}標籤然而,這將返回如在我的視圖[object Object]

我重新寫在JavaScript和財產打印出模板相同的控制器所預期的:

App.SidebarController = Ember.ObjectController.extend({ 
    namez: function() { 
    return this.get('name'); 
    }.property() 
}); 

任何想法,爲什麼CoffeeScript的版本沒有返回正確的價值?

回答

2

Coffeescript的關鍵字extends做基於原型的繼承。 Ember的擴展實際上是一個更復雜的對象系統,它提供了getter和setter,計算屬性等等。這兩個不相同。

爲灰燼等效的CoffeeScript會,

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

尼斯漁獲物。我想這是來自編寫Backbone代碼的習慣。謝謝! – John

+0

不使用「class ... extends ..」時,像脂肪箭頭(將方法綁定到實例)的好咖啡功能不起作用。如何得到這個工作? – gucki

相關問題