2014-01-04 2 views
2

Я полностью новичок в EmberJS. Я пытаюсь сделать простое приложение с двумя сущностями, пользователями и отделами. У меня есть отдельные шаблоны и маршруты для пользователей CRUD, а для отдела CRUD.EmberJS populate dropdown from another model

Вот подробный код о моей модели

App.ApplicationAdapter = DS.RESTAdapter.extend(); 

App.Store = DS.Store.extend({ 
    adapter: 'App.ApplicationAdapter' 
}); 


DS.RESTAdapter.reopen({ 
    host: 'http://localhost:8081/slim' 
}); 


App.Department = DS.Model.extend({ 
    departmentname : DS.attr(), 
    user   : DS.hasMany('user') 
}); 


App.User = DS.Model.extend({ 
    username  : DS.attr('string'), 
    full_name : DS.attr(), 
    email  : DS.attr(), 
    department_id : DS.belongsTo('department') 
}); 

В режиме чтения, я могу показать, какой отдел находится пользователь, используя этот

Department: {{department_id.departmentname}} 

Однако в пользовательском редактирования/пользователя создать режиме, я хочу отобразить выпадающий список, показывающий отделы. Я не знаю, как это сделать, потому что при определении маршрута «пользователи» я указал модель на App.User.

Я попытался это, но никакого успеха

{{view Ember.Select content=model.departments}} 

Мой код использует PHP REST API, так что он не будет работать на jsbin. Но все-таки я ставлю ссылку

http://jsbin.com/oViJeyAy/2/edit

ответ

2

Это не является необходимым в новых версиях ED (1,0 бета 1+)

App.Store = DS.Store.extend({ 
    adapter: 'App.ApplicationAdapter' 
}); 

DS.RESTAdapter.reopen({ 
    host: 'http://localhost:8081/slim' 
}); 

Это должно быть просто это

App.ApplicationAdapter = DS.RESTAdapter.extend({ 
    host: 'http://localhost:8081/slim' 
}); 

Просто добавьте имущество к контроллеру и получите отделы

App.UserController = Ember.ObjectController.extend({ 
    departments: function(){ 
     return this.store.find('department'); 
    }.property(), 

    isEditing : false, 

    edit: function(){ 
     this.set('isEditing', true); 
    }, 

    doneEditing: function(){ 
     this.set('isEditing', false); 
     var user = this.get('model'); 
     user.save(); 
    } 
}); 

Затем в шаблоне пользователя

{{view Ember.Select 
     content=departments 
     optionValuePath="content.id" 
     optionLabelPath="content.departmentname"}} 

http://emberjs.com/api/classes/Ember.Select.html

PS Вот полезную короткий читать об изменениях для Ember данных беты 1.0 + https://github.com/emberjs/data/blob/master/TRANSITION.md

+0

Раскрывающихся заполняются со следующими строками, , .... количество отправлений соответствует раскрывающимся спискам, поэтому я думаю, что контроллер правильно отображает отделы. – Shuaib

+0

Извините, я решил, что вы уже смотрите на документы, я добавил ссылку выше с примером – Kingpin2k

+0

Спасибо, теперь он работает – Shuaib