我正在尝试使用Ember Select,但选项的ID似乎正在根据我选择的选项进行更改。
我已经用书籍和作者模拟了一个简化的场景,并且下面是Ember.Select
{{ view Ember.Select
contentBinding="controller.authors"
optionValuePath="content.id"
optionLabelPath="content.name"
valueBinding="book.author.id"
}}
选择有效,但它会更改绑定的基础列表(contentBinding),而不仅仅是valueBinding。
基于我所看到的奇怪行为,我只能假设我在Ember.Select电话上错误地连接了参数,但我无法提出正确的组合。
下面的小提琴显示了我的意思:
重现的步骤: 1)点击小提琴。有时我不得不多次点击它以获得选择(不知道为什么,它可能与问题有关,或者可能只是小提琴) 2)通过下拉菜单更改任何“作者” 3)请注意,与书籍作者相关的id不仅会发生变化,而且作者列表中的ID也会发生变化。 4)告诉我原因:)。
http://jsfiddle.net/davepreston/h9dJt/
正如你可能会说的那样,我很贪图,所以感谢你的帮助。
- 戴夫
答案 0 :(得分:1)
答案4)为什么?
这是因为你在book.author.id中选择值之间存在约束,所以当选择值改变时,相应作者的id也会改变。这是ember的基本双向绑定的通常行为。如果我们绑定2个属性,其中一个属性的更改也会改变另一个属性
id更改反映在作者列表中,因为在商店中我们只有一个记录实例意味着book.author引用相同的记录对象(不进行复制)。
答案 1 :(得分:1)
修改你的绑定,
view Ember.Select
contentBinding="controller.authors"
optionValuePath="content"
optionLabelPath="content.name"
valueBinding="book.author"