Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ember.js Ember.Select:异步设置内容时选择的值错误_Ember.js - Fatal编程技术网

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

Ember.js Ember.Select:异步设置内容时选择的值错误,ember.js,Ember.js,以下是jsbin中的问题: 当我有这样的选择时: {{view Ember.Select contentBinding="items" optionValuePath="content.value" optionLabelPath="content.caption" value=value }} 其中,items在路由中设置为PromiseArray,数据如下所示: [ {value: 1, caption: "one"}, {value: 2, caption: "t

以下是jsbin中的问题:

当我有这样的选择时:

{{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()
当模板呈现时,我希望看到选中的第二个元素,但是该值被设置为
未定义的
(参见jsbin)

有没有办法让这一切顺利进行?(无需使元素成为余烬数据模型并使用
selectionBinding

更新
最后,我使用了
afterModel
hook并返回了它的承诺:

根据你帖子中的评论,我从github.com/emberjs/ember.js/issues/1333的最后一条评论中提取了一些代码,并做了一些小改动,代码现在的样子如下:

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

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


这与把手助手的概念/模式几乎完全相同。希望能派上用场

可能与问题有关,谢谢你的建议!我的例子太做作了,我已经更新了jsbin:。在这种情况下,控制器已经有了另一个模型,所以我不能使用
模型
钩子..我明白了,看起来你的问题与你在评论中提出的问题有关,为什么不试试这里给出的任何解决方案?,我使用了本期最后一条评论中的一条,它起了作用。我使用了与前一条评论中的链接几乎相同的代码。起初,这似乎是一个黑客行为,但我认为这是这里最简单的解决方案。谢谢,
fanta
!你可以更新你的答案,我会接受的谢谢,马修!问题是,我希望在第一次呈现模板时选择第二个元素(因此是
value=value
和IndexController中的属性)@whatth,它是异步的,所以需要提供默认值。它需要位于模型上或控制器上的属性上。代码对我来说运行正常。。。可以删除提示以查看第一个渲染值为2。