在查询参数上使用 ember-cli-selectize 多选

Using ember-cli-selectize multiselect on query params

我目前正在 ember.js 中的查询参数上使用 ember-cli-selectize。与以下内容非常相似:

模板

{{ember-selectize
  content=makes
  optionValuePath="content.make"
  optionLabelPath="content.make"
  value=car_makes
  selection=carMakes
  multiple=false
  placeholder="Filter by car make..." }}

控制器

import Ember from 'ember';
export default Ember.Controller.extend({
   queryParams: ['car_makes'],
   car_makes: null,
   carMakes: Ember.A([])
});

但是,我想在我的模板中将 'multiple' 设置为 'true' 并进行多选。在多模式下这样做意味着不再支持 'value'。

author suggests使用计算值,像这样:

car_makes: Ember.computed.mapBy('carMakes', 'make')

唯一的问题是,Ember does not support query params as a computed value

那么,有谁能想出一个办法来绕过这个 Ember 吗?还是我必须制作自己的选择组件?

您可以使用 ember-cli-selectize. Take a look at the following twiddle 提供的 add-valueremove-value 操作。正如您在 my-route.hbs 中所见,我为 add-valueremove-value 提供了操作处理程序。在 my-route.js 中,您可以看到 selected/deselected 值是如何从数组 car_makes 添加到 to/remove 的;不是计算出来的 属性。希望这有帮助。