Ember.js 从另一个模型填充下拉列表
我在EmberJS是一个完全的新手。我正在尝试用两个实体,用户和部门制作一个简单的应用程序。我为用户CRUD和部门CRUD提供了单独的模板和路由 下面是关于我的模型的详细代码Ember.js 从另一个模型填充下拉列表,ember.js,Ember.js,我在EmberJS是一个完全的新手。我正在尝试用两个实体,用户和部门制作一个简单的应用程序。我为用户CRUD和部门CRUD提供了单独的模板和路由 下面是关于我的模型的详细代码 App.ApplicationAdapter = DS.RESTAdapter.extend(); App.Store = DS.Store.extend({ adapter: 'App.ApplicationAdapter' }); DS.RESTAdapter.reopen({ host: 'http
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上运行。但我仍然把链接
这在较新版本的ED(1.0 beta 1+)中不是必需的 应该就是这样
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"}}
PS这里有一个关于Ember Data 1.0 beta+更改的有用简短说明。下拉列表中填充了以下字符串。。。。部门的数量与下拉列表项匹配,因此我猜控制器正确获取了部门。对不起,我认为您已经在查看文档了,我在上面添加了一个带有示例的链接
{{view Ember.Select
content=departments
optionValuePath="content.id"
optionLabelPath="content.departmentname"}}