2012-03-09 25 views
3

不插入對象我有以下ArrayController:Ember.js PushObject在ArrayController

Lead.Controllers.Leads = Ember.ArrayController.extend 
    init: -> 
    content: Ember.A() 

    @view = Ember.View.create 
     controller: @ 
     templateName: 'app/templates/leads/list' 

    @view.appendTo $('#leads') 

    addLead: (data) -> 
    lead = Lead.Lead.create() 
    lead.setProperties JSON.parse data 
    console.log lead.get 'company' 
    debugger 
    @pushObject lead 
    console.log @get('length') 

問題是後我請推目的,長度仍然0。我真的不明白我做錯了什麼。

任何人都可以看到我做錯了什麼?我唯一能想到的就是通過Ember.A()將內容設置爲空數組。

我不知道它可能是什麼。

回答

1

我不太清楚你的問題在哪裏,因爲我a)不知道或使用CoffeeScript,b)沒有jsFiddle或工作示例。但是,如果我正確閱讀此內容,請嘗試執行以下操作:See this jsFiddle按預期工作。希望能讓你朝正確的方向發展。

+1

謝謝,我沒有從init調用_super()。那是我錯過的一點。這是需要的可惜。 – dagda1 2012-03-09 20:56:03

1

這是一個咖啡腳本語法錯誤。
有兩種解決方案(取決於你想實現什麼)。

第二個示例將對控制器的每個實例使用相同的數組。
此外,我推薦在重寫init方法時調用@_super(),否則可能會在某些類中得到意想不到的結果。

Ember.ArrayController.extend 
    init: -> 
    @_super() 
    @set 'content', Ember.A() 
    # content 

Ember.ArrayController.extend 
    content: Ember.A() 
    init: -> 
    @_super() 
    # content 
相關問題