2

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

您可能会说,我对 ember 很陌生,所以感谢您的帮助。

——戴夫

4

2 回答 2

1

4)为什么?
This is because of the you have binding between value of selection with book.author.id so when the selection value changes, id of corresponding author also changes. 这是 ember 的基本 2 路绑定的常见行为。如果我们绑定 2 个属性,其中一个的更改也会改变另一个。
id 更改反映在作者列表中,因为在商店中我们只有一个记录实例,这意味着 book.author 引用相同的记录对象(不复制)。

于 2013-10-09T06:59:49.177 回答
1

将您的绑定修改为,

view Ember.Select
          contentBinding="controller.authors"
          optionValuePath="content"
          optionLabelPath="content.name"
          valueBinding="book.author"

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

于 2013-10-09T08:10:40.740 回答