选择倍数=真时,Ember Js Binding停止工作

时间:2014-10-09 09:19:02

标签: ember.js

如果select为multiple = false,则可以正常工作。如果我们将其更改为multiple = true,则绑定将停止工作。

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 个答案:

答案 0 :(得分:0)

由于多重选择不支持value属性,因此必须像在小提琴中那样使用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')

这样,Ember知道在selectedServiceFlavour更改时更新serviceFlavours

这是您更新的小提琴:http://jsfiddle.net/taLgt1md/5/