Ember选择内容更改时设置默认值

时间:2014-05-28 15:26:19

标签: ember.js

我有2个选择,第二个(多个)取决于第一个(简单)

第一个:

{{view Ember.Select content=siteGroups selection=selectedSiteGroup}}

第二个:

 {{view Ember.Select content=sites optionLabelPath="content.name"  value=selectedSite multiple=true selection=selectedSiteDefault}}

因此,selectedSiteGoup(选择2)会更改第一个内容。

我已设置第二个的默认值:

selectedSiteDefault: function(){
  return this.get('sites.firstObject');
}.property('selectedSiteGroup')

它可以工作,但是当内容发生变化时(由于第一次选择),它不会将任何值设置为默认值。

我怎么能解决这个问题?

1 个答案:

答案 0 :(得分:1)

带有2个选择框的

Here is a demo。第二个选择框的内容基于第一个选择框。

第二个选择框的默认值是最后一个项目。

var continents = ['America', 'Europe', 'Asia'];
var countries = {
  'America': ['Texas','New York'],
  'Europe': ['Estonia','Germany'],
  'Asia': ['India','China']
};

App = Ember.Application.create();

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

App.IndexRoute = Ember.Route.extend({
  model: function() {
    return {
      'continents': continents,
      'countries': countries
    };
  }
});

App.IndexController = Em.ObjectController.extend({
  continent: 'Asia',
  country: function() {
    return this.get('countries.'+this.get('continent'));
  }.property('continent'),
  countrySel: function() {
    return this.get('country.lastObject');
  }.property('country.[]')
});

{{view Ember.Select content=content.continents valueBinding="continent"}}
{{view Ember.Select content=country selection=countrySel}}