Ember.js Ember.Select:异步设置内容时选择的值错误
以下是jsbin中的问题: 当我有这样的选择时: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
{{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。