是否有可能从一个通用列表中选择多个对象?
我的情况是这样的:
- 我有很多人(比如说 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 个列表:
- 选定的人
- 未选定人员
- 使用CollectionView和ItemView单独跟踪每个 Select 元素
- 为每个 {{view Select contentBinding }} 提供notSelectedPersons
- 为每个 {{view Select selectionBinding }} 提供selectedPersons
ember.js 中是否有可能实现与上述类似的结果?