Ember.js使用控制器中模型的一个属性创建一个数组

时间:2014-04-23 09:30:05

标签: ember.js ember-data

我有一个这样的模型:

App.Topology = DS.Model.extend({
name: DS.attr('string'),
sites: DS.attr()
});

在视图中我想用所有名字做出选择。为此,我应该在控制器中有一个包含所有这些名称的数组:

{{view Ember.Select content=ArrayThatIneed}}

我怎样才能在控制器中创建这个数组?

App.PanelRoute = Ember.Route.extend({
model: function(){
    return this.store.find('topology');
}
});

1 个答案:

答案 0 :(得分:0)

您可以使用computed属性为数组提供名称:

App.PanelController = Ember.ArrayController.extend({
  names: function() {
    return this.get('content').map(function(topology) {
      return topology.get('name');
    });
  }.property('content')
})

并像这样使用它:

{{view Ember.Select content=names}}

或者您可以使用选择的属性来显示正确的信息。这还允许您在控制器中使用所选拓扑以供进一步使用。

{{view Ember.Select
       content=controller
       optionLabelPath="content.name"
       selection=selectedTopology}}