Emberjs选择绑定

Emberjs select binding

本文关键字:绑定 选择 Emberjs      更新时间:2023-09-26

这是JsBin: http://jsbin.com/EveQOke/118

info->联系!!

我有一些客户:

var customers = {
  "customers":[
    {"id":3,"name":"Joe","bio":"some tex","contact":{"id":2,"name":"NY"}},
    {"id":2,"name":"Rox","bio":"mo' tex","contact":{"id":1,"name":"LA"}}
  ]
};

和一组位置:

var locations = {
  "location":[
    {"id":1,"name":"LA"},
    {"id":2,"name":"NY"},
    {"id":3,"name":"TKY"},
    {"id":4,"name":"JIB"},
    {"id":5,"name":"VIE"}
  ]
};

我从位置填充我的选择,我试着根据我的客户的联系方式设置它的值和选项,但它不起作用。还有一个选择,我可以设置它,但只有当valuePath和labelPath设置为"名称"和选择的值。

{{view Ember.Select
   content=model.location
   optionValuePath="content.id"
   optionLabelPath="content.name"
   selection="modal.customer.contact.id"
   value="model.customer.contact.id"
   prompt="Please select a location"
   }}

我已经看了http://emberjs.com/api/classes/Ember.Select.html,但也许我错过了什么。

我也不明白选择和值属性之间有什么不同。在文档中,如果selection=selectedPersonselectedPerson=null

,为什么选择"Tom"?

我的附加问题:)是否有可能将选择的值绑定到对象?如与客户联系。

{"id":3,"name":"Joe","bio":"some tex","contact":{"id":2,"name":"NY"}}

将select的值改为:5

{"id":3,"name":"Joe","bio":"some tex","contact":{"id":5,"name":"VIE"}}

或者我必须手工做吗?在位置中搜索id为5的对象,并用它替换客户的内容。

! !编辑! !

I have manage

  • 使用selectionBinding:如果我改变选择,客户的联系人将被更改为适当的位置对象。
  • 我可以手动设置的选择。参见preselect属性。但是我不明白为什么必须是字符串,当id是数字时,我仍然不能设置为所选客户的联系人id。

总之这是更新后的JsBin: http://jsbin.com/EveQOke/126

我在这里修复了你的JSbin:http://jsbin.com/EveQOke/134

你最大的问题是你错误地引用了位置对象。您应该通过id引用在locations fixture中定义的位置,如下所示:

App.Customer = DS.Model.extend({
    name: DS.attr(),
    bio:DS.attr(),
    contact:DS.belongsTo('location')
});
var customers = {
  "customers":[
    {"id":3,"name":"Joe","bio":"some tex","contact":2},
    {"id":2,"name":"Rox","bio":"mo' tex","contact":1}
  ]
};

这样Ember就可以将select内容中的对象与客户联系人字段中的相同对象关联起来。