Ember.js PushObject不在ArrayController中插入对象

时间:2012-03-09 15:40:20

标签: coffeescript ember.js

我有以下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')

问题出在我调用push对象之后,长度仍为0。我真的看不出我做错了什么。

谁能看到我做错了什么?我唯一能想到的是内容通过Ember.A()设置为空数组。

我不知道它还能是什么。

2 个答案:

答案 0 :(得分:1)

我不太确定你的问题在哪里因为我a)不知道或使用CoffeeScript而b)没有jsFiddle或工作示例。但是,如果我正确地阅读了这一点,您尝试执行以下操作:See this jsFiddle按预期工作。希望能指出你正确的方向。

答案 1 :(得分:1)

这是 Coffee Script 语法错误 有两种解决方案(取决于您要实施的内容)。

第二个示例将为控制器的每个实例使用相同的数组 另外,我建议在覆盖init方法时调用@_super(),否则在某些类中可能会出现意外结果。

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

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