在ember js中填充下拉列表

时间:2013-09-05 09:40:37

标签: ember.js

我的模板就像

<script type="text/x-handlebars" >

    {{view Ember.Select contentBinding="ResAdmin.adminController.softwares" selectionBinding="ResAdmin.adminController.selection" optionLabelPath="name" optionValuePath="id" }}   

</script>

我的控制器就像

ResAdmin.adminController = Ember.Controller.extend({
    selection: {
        id: '889C0E73-1587-41D5-8073-FD29FF76CF00',
        name: "$$"},
    softwares: [
        {
        id: '92E9862E-DAE5-4CC8-ACDF-7E6418641F7D',
        name: "$"},
    {
        id: '889C0E73-1587-41D5-8073-FD29FF76CF00',
        name: "$$"},
    {
        id: '47A56B26-A64A-4967-A9F6-B9D69B2CA145',
        name: "$$$"},
    {
        id: '417993DB-48BF-4BA9-BE0A-D6A53C6D8325',
        name: "$$$$"}
    ]
});

我的下拉列表没有生成。如果我从模板中删除selectionBinding,我的下拉列表似乎正在生成,但在我的下拉列表中标签没有显示。

1 个答案:

答案 0 :(得分:0)

更好的方法是在备份模板的控制器上定义数据。它接缝您的模板是默认的application因此,请尝试更改optionValuePathoptionLabelPath的路径,包括content作为前缀,并直接使用模板控制器上下文,如:

的ApplicationController

ResAdmin.ApplicationController = Ember.Controller.extend({
  selection: {
    id: '889C0E73-1587-41D5-8073-FD29FF76CF00',
    name: "$$"
  },
  softwares: [
    {
      id: '92E9862E-DAE5-4CC8-ACDF-7E6418641F7D',
      name: "$"
    },
    {
      id: '889C0E73-1587-41D5-8073-FD29FF76CF00',
      name: "$$"
    },
    {
      id: '47A56B26-A64A-4967-A9F6-B9D69B2CA145',
      name: "$$$"
    },
    {
      id: '417993DB-48BF-4BA9-BE0A-D6A53C6D8325',
      name: "$$$$"
    }
  ]
});

申请模板

<script type="text/x-handlebars" >
  {{view Ember.Select 
    contentBinding="controller.softwares"
    selectionBinding="controller.selection" 
    optionLabelPath="content.name" 
    optionValuePath="content.id"
    prompt="Select..."}}
</script>

工作example

希望它有所帮助。