Ember.js 如何使用模型数据填充Ember.Select?

Ember.js 如何使用模型数据填充Ember.Select?,ember.js,dropdownbox,ember.select,Ember.js,Dropdownbox,Ember.select,我已经读了很多关于Ember.Selects的其他问题,但都不足以解决。我有下拉列表来过滤返回数据中的某些字段。实际的过滤是另一个问题,我现在只是想填充下拉列表 根据,我的工作是在控制器上声明静态数组,但我真正想要的是用数据中的唯一值填充下拉列表,这样我就不必维护选项数组 我想我所需要的只是将select的content属性设置为模型中的一个字段,但是仅仅将content=field或contentBinding=field放进去是行不通的 如果您对此有任何建议或最佳做法,我们将不胜感激。选择视

我已经读了很多关于Ember.Selects的其他问题,但都不足以解决。我有下拉列表来过滤返回数据中的某些字段。实际的过滤是另一个问题,我现在只是想填充下拉列表

根据,我的工作是在控制器上声明静态数组,但我真正想要的是用数据中的唯一值填充下拉列表,这样我就不必维护选项数组

我想我所需要的只是将select的
content
属性设置为模型中的一个字段,但是仅仅将
content=field
contentBinding=field
放进去是行不通的


如果您对此有任何建议或最佳做法,我们将不胜感激。

选择视图的内容
希望成为或

如果希望能够控制哪些特性用作选择和值,则对象数组的效果最佳

{{view Ember.Select
        prompt="Select Something"
        content=modelProperty
        optionLabelPath="content.labelProperty"
        optionValuePath="content.valueProperty"
        value=boundValue
  }}

选择视图的内容
希望成为或

如果希望能够控制哪些特性用作选择和值,则对象数组的效果最佳

{{view Ember.Select
        prompt="Select Something"
        content=modelProperty
        optionLabelPath="content.labelProperty"
        optionValuePath="content.valueProperty"
        value=boundValue
  }}

选择视图的内容
希望成为或

如果希望能够控制哪些特性用作选择和值,则对象数组的效果最佳

{{view Ember.Select
        prompt="Select Something"
        content=modelProperty
        optionLabelPath="content.labelProperty"
        optionValuePath="content.valueProperty"
        value=boundValue
  }}

选择视图的内容
希望成为或

如果希望能够控制哪些特性用作选择和值,则对象数组的效果最佳

{{view Ember.Select
        prompt="Select Something"
        content=modelProperty
        optionLabelPath="content.labelProperty"
        optionValuePath="content.valueProperty"
        value=boundValue
  }}

以下是一段有效的代码片段:

App=Em.Application.create({
displayName:'Some.App'
});
App.Person=DS.Model.extend({
名称:DS.attr('string')
});
//这是测试应该来自后端api的数据
App.Person.FIXTURES=[
{id:1,名字:'John Oliver'},
{id:2,名字:'Jon Stewart'},
{id:3,名字:'centk-weigur'}
];
//在现实生活中,您将使用另一种类型的适配器,可能是DS.RESTAdapter
App.ApplicationAdapter=DS.FixtureAdapter.extend();
App.IndexRoute=Em.Route.extend({
模型:函数(参数){
返回此.store.find('person');
} 
});

余烬起动器套件
{{未绑定的App.displayName}

{{outlet}} 指数 人物:{{view Ember.Select prompt='-Select-'content=controller.model optionValuePath='content.id'optionLabelPath=“content.name”}
以下是一段有效的代码片段:

App=Em.Application.create({
displayName:'Some.App'
});
App.Person=DS.Model.extend({
名称:DS.attr('string')
});
//这是测试应该来自后端api的数据
App.Person.FIXTURES=[
{id:1,名字:'John Oliver'},
{id:2,名字:'Jon Stewart'},
{id:3,名字:'centk-weigur'}
];
//在现实生活中,您将使用另一种类型的适配器,可能是DS.RESTAdapter
App.ApplicationAdapter=DS.FixtureAdapter.extend();
App.IndexRoute=Em.Route.extend({
模型:函数(参数){
返回此.store.find('person');
} 
});

余烬起动器套件
{{未绑定的App.displayName}

{{outlet}} 指数 人物:{{view Ember.Select prompt='-Select-'content=controller.model optionValuePath='content.id'optionLabelPath=“content.name”}
以下是一段有效的代码片段:

App=Em.Application.create({
displayName:'Some.App'
});
App.Person=DS.Model.extend({
名称:DS.attr('string')
});
//这是测试应该来自后端api的数据
App.Person.FIXTURES=[
{id:1,名字:'John Oliver'},
{id:2,名字:'Jon Stewart'},
{id:3,名字:'centk-weigur'}
];
//在现实生活中,您将使用另一种类型的适配器,可能是DS.RESTAdapter
App.ApplicationAdapter=DS.FixtureAdapter.extend();
App.IndexRoute=Em.Route.extend({
模型:函数(参数){
返回此.store.find('person');
} 
});

余烬起动器套件
{{未绑定的App.displayName}

{{outlet}} 指数 人物:{{view Ember.Select prompt='-Select-'content=controller.model optionValuePath='content.id'optionLabelPath=“content.name”}
以下是一段有效的代码片段:

App=Em.Application.create({
displayName:'Some.App'
});
App.Person=DS.Model.extend({
名称:DS.attr('string')
});
//这是测试应该来自后端api的数据
App.Person.FIXTURES=[
{id:1,名字:'John Oliver'},
{id:2,名字:'Jon Stewart'},
{id:3,名字:'centk-weigur'}
];
//在现实生活中,您将使用另一种类型的适配器,可能是DS.RESTAdapter
App.ApplicationAdapter=DS.FixtureAdapter.extend();
App.IndexRoute=Em.Route.extend({
模型:函数(参数){
返回此.store.find('person');
} 
});

余烬起动器套件
{{未绑定的App.displayName}

{{outlet}} 指数 人物:{{view Ember.Select prompt='-Select-'content=controller.model optionValuePath='content.id'optionLabelPath=“content.name”}
很接近了,谢谢,这可以提取每个值,但是如果有多条记录具有相同的名称,您的选择将包含所有重复项。如何获得唯一的值?如果后端API返回具有相同“文本”但不同ID的选择框记录,则必须清理数据。如果您的后端API返回重复记录(包括id),则最后一次重复的记录将保留,而上一次重复的记录将被删除。仍然需要进行数据清理。如果无法控制后端API,则可能需要在
Route#setupController
中处理此问题,以便在将模型设置到
controller.model
属性之前过滤并删除重复记录。
select
组件IMHO不应处理这种类型的事情