Coffeescript Ember.js PushObject未在ArrayController中插入对象
我有以下ArrayController:Coffeescript Ember.js PushObject未在ArrayController中插入对象,coffeescript,ember.js,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') addLe
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()
将内容设置为空数组
我不知道还有什么问题。我不太确定你的问题在哪里,因为我a)不知道或不使用CoffeeScript,b)没有JSFIDLE或工作示例。但是如果我读对了,你会尝试做以下的事情:按照预期工作。希望这能为您指明正确的方向。这是一个咖啡脚本语法错误。
有两种解决方案(取决于您想要实现的内容) 第二个示例将对控制器的每个实例使用相同的数组。
另外,我建议在重写init方法时调用
@_super()
,否则您可能会在某些类中得到一些意外的结果
Ember.ArrayController.extend
init: ->
@_super()
@set 'content', Ember.A()
# content
Ember.ArrayController.extend
content: Ember.A()
init: ->
@_super()
# content
谢谢,我不是从init打电话给_super()。这是我错过的一点。遗憾的是,这是必要的。