2

使用ember.js 1.0ember-data 1.0 beta2

我有一个具有以下属性的模型(状态)

state: DS.attr('string'),
stateName: DS.attr('string'),

和具有以下属性的模型(客户)

name: DS.attr('string'),
stateID: DS.attr('string'),
state: DS.belongsTo("state")

我希望能够编辑客户并从下拉下选择状态(stateId +名称显示:例如“ fl -florida”,然后选择时,将state.stateid存储到customer.stateid property.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 并将选择更改为读取

{{view Ember.Select
  contentBinding="controllers.state.content"
  optionValuePath="content.stateName"
  optionLabelPath="content.stateName"
  valueBinding="foobar"
  class="form-control"

}}

现在 customer.foobar 使用来自选择的值进行更新。

customer 上名为 stateID 的属性是否存在问题?我有状态模型和状态控制器等,有冲突吗?

4

2 回答 2

1

毕竟 - 问题在于模型本身。状态模型没有 stateID 字段,它是 state.state ...

我向所有在这件事上浪费时间的人表示由衷的歉意。这么愚蠢的错误。

于 2013-09-10T06:04:52.403 回答
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"
}}
于 2013-09-09T13:43:42.527 回答