2014-10-09 14 views
1

如果select是multipe = false,它將起作用。如果我們將其更改爲multiple = true,則綁定停止工作。當選擇multipe = true時,Emberjs Binding停止工作

http://jsfiddle.net/6Evrq/163/

App = Ember.Application.create(); 

App.Router.map(function() { 
    // put your routes here 
}); 

App.IndexController = Ember.ObjectController.extend({ 

    selectedServiceFlavours: Ember.computed.defaultTo('serviceFlavours.firstObject.myvalue'), 

    serviceFlavours: function(){ 
    return [ 
     {name: "1 (1)", myvalue: "1"}, 
     {name: "2 (2)", myvalue: "2"}, 
     {name: "3 (3)", myvalue: "3"} 
    ]; 
    }.property(), 

}); 

和選擇:

{{view Ember.Select content=serviceFlavours optionLabelPath="content.name" optionValuePath="content.myvalue" value=selectedServiceFlavours multiple=true }} selected: {{selectedServiceFlavours}} 
+1

遺憾的是不支持多選擇'value'財產。 http://emberjs.com/api/classes/Ember.Select.html#property_value – 2014-10-09 19:22:37

+0

謝謝,所以我必須使用選擇,如何保持內容更改時的默認選擇? http://jsfiddle.net/taLgt1md/4/ – Pedro4441 2014-10-10 09:19:58

回答

0

由於不支持多選值屬性,您必須在您的提琴那樣使用selection屬性:

{{view Ember.Select content=serviceFlavours optionLabelPath="content.name" 
optionValuePath="content.myvalue" selection=selectedServiceFlavours multiple=true}} 

爲了讓您選擇的選項返回默認內容更新,你需要正確的參數傳遞到您的計算性能,就像這樣:

selectedServiceFlavours: function() { 
    return [this.get('serviceFlavours.firstObject')]; 
}.property('serviceFlavours') 

這樣子玉知道更新selectedServiceFlavourserviceFlavours變化。

這是你更新的提琴:http://jsfiddle.net/taLgt1md/5/