使用ajax contentBinding的emberjs动态选择valueBinding

时间:2013-09-03 10:57:55

标签: ember.js

使用emberjs我正在使用Em.Select来显示通过AJAX检索的JSON填充的选项列表。

{{view Em.Select
    valueBinding="profile"
    contentBinding="App.profiles"
    selectionBinding="profile"
    optionValuePath="content.id"
    optionLabelPath="content.name"
    prompt="Please select a profile"}}

在创建表单中使用时,它按预期工作,但在编辑表单中,值不会自动被选中。

这会导致问题,因为我有一系列3个选择输入依赖于预览列表中选择的选项。

任何人都可以解释如何在填充JSON列表之前阻止选项选择吗?

解决:

感谢您的帮助。我最终使用它的方法是将select视图包装在if语句中,如下所示:

 {{#if App.Profiles}}
     {{view Em.Select
         valueBinding="profile"
         contentBinding="App.profiles"
         selectionBinding="profile"
         optionValuePath="content.id"
         optionLabelPath="content.name"
         prompt="Please select a profile"}}
 {{/if}}

kroofy建议我将它包装在一个if语句中,该语句观察到了一个isLoaded属性,但由于我的配置文件对象没有我试过检查App.Profiles并且它有效。

1 个答案:

答案 0 :(得分:1)

可能你可以把它包装成有条件的。因此它只显示加载配置文件时的选择。

{{#if App.profiles.isLoaded}}
    {{view Em.Select
        valueBinding="profile"
        contentBinding="App.profiles"
        selectionBinding="profile"
        optionValuePath="content.id"
        optionLabelPath="content.name"
        prompt="Please select a profile"}}
{{/if}}

或者您可能只需要将id添加到valueBinding。

valueBinding="profile.id"