Я пытаюсь сделать что-то довольно простое с Ember и Ember Data.
1) Сообщения принадлежат пользователям; Пользователи hasMany Posts
2) В созданной новой форме сообщения я хочу выбрать/выпадающего списка всех пользователей
3) Когда я редактирую сообщение (используя ту же форму), я хочу правильно привязать его к Dropbox
Вопрос: Какова наилучшая практика для выпадающего списка, связанного с списком пользователей? Как связать форму редактирования, чтобы снова заполнить выпадающее меню?
Модель пользователя:
App.User = DS.Model.extend({
posts: DS.hasMany('post', {async: true}),
});
Модель сообщения:
App.Post = DS.Model.extend(Ember.Validations.Mixin, {
user: DS.belongsTo('user', {async: true}),
});
Создать новую форму сообщения:
{{view Em.Select
content=users <<<<< How do I bind this.store.find("user") here?
optionValuePath='content.id'
optionLabelPath='content.name'
}}
Я не понимаю, как лучше всего привязать выбранный контент к пользователям.
Попытка 1:
* Я использую Ember-Form
{{em-select
property="user_id"
label="user"
prompt="Select user:"
content=controllers.users.content
optionValuePath="content.id"
optionLabelPath="content.first_name"
}}
И в действии сохранения:
newItem.set('user', this.store.getById('user', this.get('user_id')));
Я попытался использовать user_id как мое свойство для формы и перевести обратно к объекту пользователя, чтобы назначить сообщение при сохранении. Однако этот метод выглядит глупо, потому что я активно переводил user_id в объект пользователя каждый раз, когда я сохраняю. Я чувствую, что должен быть способ, которым это будет сделано автоматически, если я сделал правильное связывание, вместо того, чтобы прыгать через обручи, чтобы связать свойство как user_id. Это также затрудняет привязку назад, когда я использую ту же форму для редактирования сообщения. Поскольку все отношения были установлены, у меня возникает ощущение, что я делаю что-то неправильно здесь. Я думаю, что должен быть лучший способ.
Спасибо!