Ember.Select:异步设置内容时选择的错误值

时间:2014-06-27 15:57:51

标签: ember.js

这是jsbin中的问题:http://emberjs.jsbin.com/bahuvusa/29/edit

当我有这样的选择时:

{{view Ember.Select
  contentBinding="items"
  optionValuePath="content.value"
  optionLabelPath="content.caption"
  value=value
}}

在路由中将items设置为PromiseArray,数据如下所示:

[
  {value: 1, caption: "one"},
  {value: 2, caption: "two"},
  {value: 3, caption: "three"}
]

我在控制器中设置了值:

value: function() {
  return 2;
}.property()

当模板渲染时,我希望选择 second 元素,而是将值设置为undefined(参见jsbin)。

有没有办法让这项工作? (不使元素成为余烬数据模型并使用selectionBinding

更新

我最终使用了afterModel钩子并从中返回了承诺:http://emberjs.jsbin.com/bahuvusa/40/edit

2 个答案:

答案 0 :(得分:1)

根据你帖子中的评论,我从这张票的最后一条评论中获取了一些代码github.com/emberjs/ember.js/issues/1333并进行了一些小改动,这就是现在代码的样子:http://emberjs.jsbin.com/bahuvusa/30/edit

答案 1 :(得分:0)

您可以根据选择更改事件将选择绑定到要动态更新的模型或属性。因此,将模型或集合分配给selection属性,您还可以在其中设置prompt

{{view Ember.Select
  contentBinding="content"
  optionValuePath="content.value"
  optionLabelPath="content.caption"
  selection=model.value
  prompt="Set the prompt"
  value=value
}}

示例JSBin:http://emberjs.jsbin.com/bahuvusa/27/edit

这与车把助手的全面概念/模式完全相同。希望派上用场!