1

是否有可能从一个通用列表中选择多个对象?

我的情况是这样的:

  • 我有很多人(比如说 100 人)的名单
  • 我只需要选择其中的几个
  • 每个人最多只能被选中一次(被选中的人不能在 Select 控件的内容列表中)

视觉示例:

人物数组(选择的内容):

App.personsController = Ember.ArrayController.create({
  content:["Person1", "Person2", "Person3", "Person4", "Person5"]
})

我们有 2 个按钮来添加和删除行:

(+)按钮执行“添加”操作,调用person.createRecord将另一个项目添加到 CollectionView 内的 ItemView

(x)按钮执行调用person.deleteRecord删除记录的“删除”操作

这是我们首先看到的:

  • (+)(x)

第一个动作 - 点击添加

所以在执行“点击”操作后,我们有这样的列表:

  • Person1 <- 这实际上是 DropdownList(选择控件)
  • (+)(x)

现在所有 Select 的目录是:

[“人 2”、“人 3”、“人 4”、“人 5”]

第二个动作 - 点击添加

  • 人1
  • 人2
  • (+)(x)

选择的目录:

[“人 3”、“人 4”、“人 5”]

第三个动作 - 选择

现在我们将 Person2 更改为 Person5

  • 人1
  • 人5
  • (+)(x)

表中的内容:

[“人 2”、“人 3”、“人 4”]

第四步 - 点击删除

现在我们从列表中删除 Person1

  • 人5
  • (+)(x)

表中的内容:

["Person1:, "Person2", "Person3", "Person4"]

如您所见,表格内容随着选定的上下文而变化。

问题:

模板中的选择视图具有我想与我的内容表绑定的 contentBinding,但是如果我删除了已选择的项目,那么它将不会显示在 html 选择选项属性中。我尝试使用 selectionBinding 但它似乎无法以这种方式工作。

据我所知,我们应该:

  • 使用 2 个列表:
    • 选定的人
    • 未选定人员
  • 使用CollectionViewItemView单独跟踪每个 Select 元素
  • 为每个 {{view Select contentBinding }} 提供notSelectedPersons
  • 为每个 {{view Select selectionBinding }} 提供selectedPersons

ember.js 中是否有可能实现与上述类似的结果?

4

0 回答 0