Ember Data: правильный способ использования findAll - PullRequest
1 голос
/ 29 декабря 2011

Я пытаюсь использовать данные ember, используя https://github.com/emberjs/data в качестве ссылки.

В частности, я пытаюсь использовать контроллер массива для отображения всех объектов 'Person' в моей базе данных.,Я также хочу разрешить пользователю создавать новое «Персона».

У меня есть следующий код, который работает:

App.peopleController  = Em.ArrayController.create
  content: App.store.findAll(App.Person)

  newPerson: (name) ->
    App.store.create App.Person,
      name: name
    @set('content', App.store.findAll(App.Annotation))

Однако кажется, что каждый раз сбрасывать свойство содержимого неэффективноновый человек создан.Если я удаляю последнюю строку и изменяю код на следующий:

App.peopleController  = Em.ArrayController.create
  content: App.store.findAll(App.Person)

  newPerson: (name) ->
    App.store.create App.Person,
      name: name

Новое представление все еще создается при каждом вызове newPerson, но тот же объект дублируется.По сути, все новые шаблоны используют первый созданный объект вместо нового каждый раз.Я думаю, что это связано со следующей ошибкой: https://github.com/emberjs/data/issues/11.

Для справки, моя логика шаблона выглядит следующим образом:

{{#each App.peopleController}}
  {{#view App.PersonView contentBinding="this"}}
    {{#with content}}
      Client id is {{clientId}}
    {{/with}}
  {{/view}}
{{/each}}

Когда я использую вторую версию моего кода -один со строкой @set('content', App.store.findAll(App.Annotation)) - clientId дублируется для каждого объекта Person.В первой версии идентификаторы клиента верны.

Кто-нибудь может пролить немного света здесь?Я делаю это правильно?Мои инстинкты говорят мне, что это ошибка, но я не уверен.

Ответы [ 2 ]

4 голосов
/ 29 декабря 2011

Я думаю, что это ошибка.Я опубликовал связанную проблему , которая иллюстрирует эту проблему.

0 голосов
/ 30 декабря 2011

Попробуйте вместо этого использовать представление #collection.

См. Пример кода задачи.Также см. http://guides.sproutcore20.com/using_handlebars.html раздел 5 для некоторой документации.

Надеюсь, это поможет.

...