使用 ember.js 1.0 和 ember-data 1.0 beta2
我有一个具有以下属性的模型(状态)
state: DS.attr('string'),
stateName: DS.attr('string'),
和具有以下属性的模型(客户)
name: DS.attr('string'),
stateID: DS.attr('string'),
state: DS.belongsTo("state")
我希望能够编辑客户并从下拉列表中选择状态(状态ID +名称显示:例如“FL - Florida”,并且在选择时,将state.stateID存储到客户中。 stateID属性
这是我第一次尝试这样的事情,并且对这个过程感到有些困惑。
在我的客户路线中,我设置了以下内容:
setupController: function(controller, model) {
this._super(controller, model);
this.controllerFor('state').set('content', this.store.find('state'));
}
我的选择是:
{{view Ember.Select
contentBinding="controllers.state.content"
optionValuePath="content.stateName"
optionLabelPath="content.stateName"
valueBinding="content.stateID"
selectionBinding="content.stateID"
prompt="Select a state"
}}
现在我很困惑从哪里开始。
感谢
更新
将视图更改为
{{view Ember.Select
contentBinding="controllers.state.content"
optionValuePath="content.stateID"
optionLabelPath="content.stateName"
valueBinding="customer.stateID"
}}
我仍然没有得到更改的stateid属性。我也试过了
selectionBinding="customer"
无济于事。
更新#2
我怀疑我的问题可能与属性名称有关。我将customer.stateID属性更改为customer.foobar并将select更改为read
{{view Ember.Select
contentBinding="controllers.state.content"
optionValuePath="content.stateName"
optionLabelPath="content.stateName"
valueBinding="foobar"
class="form-control"
}}
现在customer.foobar使用select中的值进行更新。
客户名为stateID的属性是否存在问题?我有状态模型和状态控制器等,所以有冲突吗?
答案 0 :(得分:1)
毕竟 - 问题出在模型本身。状态模型没有stateID字段,它是state.state ...
我衷心地向所有浪费时间的人道歉。这样一个愚蠢的错误。
答案 1 :(得分:0)
好吧,也许不是最好的解决方案,但效果很好:
App.ItemModalController = Ember.ObjectController.extend({
content: [],
availableCategories: function() {
return this.store.find('category');
}.property(),
//...
});
选择:
{{view Ember.Select
contentBinding="availableCategories"
valueBinding="categorySelected"
optionLabelPath="content.title"
optionValuePath="content.id"
prompt="Please select a category"
class="form-control"
}}