我找到了ember的自定义选择 https://gist.github.com/pixelhandler/6320922。它基于组件并且运行良好。 但我有一个麻烦。 select的数据源在其所有实例之间共享。 我想将默认值设置为数据集的第一个元素,但是当我在一个选择中更改值时,它会随处更改。你能帮帮我吗?以下是示例:http://emberjs.jsbin.com/guhobutafado/19/edit
答案 0 :(得分:1)
在你的例子中,你的选择框都引用带有绑定的相同数据集,所以,当然,当一个更改时,它们都会...这就是数据绑定的原则。
然后,您必须为您的问题使用不同的数据集,以保存每个选择的修改。如果没有这个,你就无法访问每个数据,因为它们指向相同的事物。
您可以使用多个这样的数组:
App.IndexController = Ember.Route.extend({
name: 'one',
className: 'dropdown',
choices1: [
{ choice: 'Choose One' },
{ choice: 'First' },
{ choice: 'Last' }
],
choices2: [
{ choice: 'Choose One' },
{ choice: 'First' },
{ choice: 'Last' }
],
choices3: [
{ choice: 'Choose One' },
{ choice: 'First' },
{ choice: 'Last' }
]
});
然后使用每个独立数组调用 faux-select 组件:
{{faux-select name=name className=model.className
choices=choices1 selected=choices1.[0].choice}}
{{faux-select name=name className=model.className
choices=choices2 selected=choices2.[0].choice}}
{{faux-select name=name className=model.className
choices=choices3 selected=choices3.[0].choice}}
Here是一个有着这种哲学的JSBin。