gpt4 book ai didi

ember.js - EmberJS从另一个模型填充下拉列表

转载 作者:行者123 更新时间:2023-12-02 06:10:47 26 4
gpt4 key购买 nike

我是EmberJS的新手。我试图用两个实体(用户和部门)制作一个简单的应用程序。我为用户CRUD和部门CRUD有单独的模板和路由。

这是关于我的模型的详细代码

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

最佳答案

在较新版本的ED(1.0 beta 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'
});

只需向 Controller 添加属性并获取部门
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 Data 1.0 beta + https://github.com/emberjs/data/blob/master/TRANSITION.md更改的有用简短读物

关于ember.js - EmberJS从另一个模型填充下拉列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20925601/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com