2012-03-09 58 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