使用'multiple = true'的Ember“select”视图:底层控制器属性始终为'undefined'

时间:2015-04-28 12:53:48

标签: javascript ember.js

Ember 1.10.0,Ember CLI 0.2.0-beta.1

我遇到标准“选择”视图(代表HTML下拉列表)的问题:

当'multiple = true'设置应用于视图时(因此,视图表示可以选择多个元素的HTML下拉列表)我得到的底层控制器属性始终具有'undefined'值。这在下拉选择中独立发生:要么没有选择元素,要么只有一个元素或多个元素。 看起来下拉列表和相应的控制器之间根本没有同步。

与默认下拉选项相同(可以通过底层控制器属性设置,如我所知):我尝试了null,[],{}和一些预选,如[1,2]。这根本没有被考虑在内!

Handlebars模板中的视图定义:

{{view 'select'
  content=model.dictDestinations
  value=selectedDestination
  optionValuePath='content.id'
  optionLabelPath='content.name'
  multiple=true
  classNames='form-control'
}}

当下拉列表是单选(“select”视图没有'multiple = true'设置)时,一切都很好。

有人见过类似的东西吗?我究竟做错了什么?或者这是Ember中的一个错误?

谢谢!

1 个答案:

答案 0 :(得分:0)

它不会那样工作。一周前我遇到了类似的问题。这可能是一个讨厌的错误。相反,你可以这样做:

{{view 'select'
  content=model.dictDestinations
  selection=selectedDestination
  optionLabelPath='content.name'
  multiple=true
  classNames='form-control'
}}

然后使用计算属性

获取值
selectedDestinationValue: function() { 
   return this.get('selectedDestination.id') ;
}.property('selectDestination.id')