您可以使用needs
来声明您OrdersNewController
需要customers
控制器。此外,创建一个属性以帮助轻松绑定该控制器。
App.OrdersNewController = Ember.ObjectController.extend({
needs: ['customers'],
eligibleCustomers: function() {
return this.get('controllers.customers');
}.property(),
});
在对应的Ember.Select
你需要绑定一个属性就好selectedCustomer
让你在保存记录的时候使用。
{{view Ember.Select
contentBinding="eligibleCustomers"
valueBinding='selectedCustomer'
optionLabelPath="content.name"
optionValuePath="content.id"
}}
为了OrderNewController
工作,你必须给它一个新的订单对象,setupController
以便description
和其他属性对应于它的模型,因为它是ObjectController
App.OrdersNewRoute = Ember.Route.extend({
setupController: function(controller) {
controller.set('model', App.Order.createRecord({}));
}
});
最后在createUser
方法中,transitionTo
不推荐使用。你想transitionToRoute
改用。
createUser: function() {
var model = this.get('model');
var selectedCustomer = this.get('selectedCustomer');
var customer = App.Customer.find(selectedCustomer);
model.set('customer', customer);
model.set('dateOfOrder', new Date());
model.save();
this.transitionToRoute('orders');
}
这是更新的jsbin