Ember.js PushObject не вставляет объект в ArrayController - PullRequest
3 голосов
/ 09 марта 2012

У меня есть следующий 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. Я действительно не вижу, что я делаю неправильно.

Кто-нибудь может увидеть, что я делаю не так? Единственное, о чем я могу думать, это о том, что Content установлен на пустой массив через Ember.A().

Понятия не имею, что еще это может быть.

Ответы [ 2 ]

1 голос
/ 11 марта 2012

Это синтаксическая ошибка Coffee Script .
Есть два решения (в зависимости от того, что вы хотите реализовать).

Во втором примере будет использоваться один и тот же массив для каждого экземпляра контроллера.
Кроме того, я бы рекомендовал вызывать @_super() при переопределении метода init, иначе вы можете получить неожиданные результаты с некоторыми классами.

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

Ember.ArrayController.extend
  content: Ember.A()
  init: ->
    @_super()
    # content
1 голос
/ 09 марта 2012

Я не совсем уверен, где ваша проблема, так как я а) не знаю или не использую CoffeeScript и б) нет jsFiddle или рабочего примера. Но если я правильно читаю, вы пытаетесь сделать следующее: См. Этот jsFiddle , который работает, как ожидалось. Надеюсь, что это направит вас в правильном направлении.

...