gpt4 book ai didi

ember.js - 填充 Ember.Select 的正确方法

转载 作者:行者123 更新时间:2023-12-01 03:55:56 25 4
gpt4 key购买 nike

我有以下 JSbin,我正在尝试使用 ember-data 创建一个基本的订购系统。

http://jsbin.com/ibazom/4 (在达山的第一条评论后更新)

每个订单都需要绑定(bind)到一个客户,我知道我需要填充属性 (eligibleCustomers) 以绑定(bind)到 Ember.Select,但我不太清楚在哪里做。

然后我需要更新订单/新模板

{{view Ember.Select
contentBinding="eligibleCustomers"
optionLabelPath="content.name"
optionValuePath="content.id"
}}

我在去/orders 时也遇到了我无法弄清楚的错误
TypeError: Cannot read property 'length' of null 

更新: App.Order.FIXTURES =[];修复了上述错误。

来自 http://discuss.emberjs.com/t/proper-way-to-populate-ember-select/1611 的交叉帖子

最佳答案

您可以使用 needs声明您的 OrdersNewController需要 customers Controller 。另外创建一个属性以帮助轻松绑定(bind)该 Controller 。

App.OrdersNewController = Ember.ObjectController.extend({
needs: ['customers'],
eligibleCustomers: function() {
return this.get('controllers.customers');
}.property(),
});

在相应的 Ember.Select您需要绑定(bind)到 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

关于ember.js - 填充 Ember.Select 的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17331556/

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