我有一些客户:
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设置为“name”和select的值。
{{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=selectedPerson
位于selectedPerson=null
我的红利问题:)是否可以将select的值绑定到对象?例如,客户的联系方式。
{"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的对象,并用它替换客户的内容。
我已经管理了
preselect
财产。但我不明白为什么必须是字符串,当id
是数字时,我仍然无法设置为所选客户的联系人ID。无论如何,这里是更新的JsBin:http://jsbin.com/EveQOke/126
答案 0 :(得分:0)
我在这里修复了你的JSbin: http://jsbin.com/EveQOke/134
您最大的问题是您错误地引用了位置对象。 您应该通过id引用位置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可以将选择内容中的对象与客户联系人字段中的相同对象相关联。