2014-04-23 22 views
0

我有一個模型是這樣的:Ember.js創建與控制器模型的屬性之一的陣列

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'); 
} 
}); 

回答

0

你可以使用一個計算的屬性來提供與名稱的數組:

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}} 

或者你可以使用select屬性顯示正確的信息。這也將允許您使用控制器中選定的拓撲結構以供進一步使用。

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

那麼控制器裏面的幫助器在視圖中是指控制器在使用中?這非常有用,非常感謝。 – Pedro4441

+0

第二個選項是(這是id),我如何檢索名字? – Pedro4441

+0

添加另一個屬性來設置選項的值:'optionValuePath =「content.name」' – stravid

相關問題