灰烬选择更改contentBinding的ID

时间:2013-10-09 06:49:23

标签: ember.js ember-data

我正在尝试使用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/

正如你可能会说的那样,我很贪图,所以感谢你的帮助。

- 戴夫

2 个答案:

答案 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"

http://jsfiddle.net/h9dJt/4/