Ember js选择默认值不起作用

时间:2014-08-21 23:00:59

标签: javascript ember.js

我想使用其他模型的类别自动填充下拉列表。它显示但默认值不起作用。以下是两种模式:

App.Task = DS.Model.extend({
  category_id : DS.attr('number'),
  title       : DS.attr('string'),
  ...
  category    : DS.belongsTo('category', { async : true })
});

App.Category = DS.Model.extend({
  name        : DS.attr('string'),
  ...
  tasks       : DS.hasMany('task', { async : true })
});

这是我的路线:

App.Router.map(function () {
   this.resource('tasks', { path : '/tasks'}, function () {
       this.resource('task', { path: '/:task_id' }, function( ) {
           this.route('edit');
       });
       ...
    });
    ...
});

这是控制器:

App.TaskController = Ember.ObjectController.extend({
  isEditing: false,
  needs: ['categories'],
  categoriesDropdown : function() {
     return this.store.find('category');
  }.property(),
  ...
});

我有一个按钮可以在编辑模式之间切换。在编辑模式下,将填充下拉列表,但默认值不是。我使用了Ember检查器,值绑定正在工作'因为如果我选择一个选项,category_id也会改变。

{{view Ember.Select contentBinding="categoriesDropdown" 
optionValuePath="content.id" optionLabelPath="content.name" 
valueBinding="category_id" class="form-control select-chosen" 
prompt="No category selected"}}

我也尝试将其直接绑定到类别,但是在加载时类别设置为null,如果我尝试更改选项,则类别会更改,但选择选项不会更改。

{{view Ember.Select contentBinding="categoriesDropdown" 
optionValuePath="content.id" optionLabelPath="content.name" 
selectionBinding="category" class="form-control select-chosen" 
prompt="No category selected"}}

绑定正在运行,但选择/下拉列表未更新。

1 个答案:

答案 0 :(得分:0)

试试这样:

{{view Ember.Select content=categoriesDropdown
                optionLabelPath="content.name"
                optionValuePath="content.id"
                classNames=["form-control","select-chosen"]
                prompt="No category selected"
                selection=selectedCategory}}

然后,您应该能够选择当前选择作为控制器的selectedCategory属性。