1 つの共通リストから複数のオブジェクトを選択する可能性はありますか?
私の場合は次のようになります。
- 私は多くの(100人としましょう)人のリストを持っています
- 私はそれらのいくつかだけを選択する必要があります
- すべての人を最大 1 回選択する必要があります (選択された人は、選択コントロールのコンテンツ リストに含まれていてはなりません)。
視覚的な例:
Person 配列 (Select のCONTENT ):
App.personsController = Ember.ArrayController.create({
content:["Person1", "Person2", "Person3", "Person4", "Person5"]
})
行を追加および削除するための 2 つのボタンがあります。
(+)ボタンは、person.createRecordを呼び出して CollectionView 内の ItemView に別のアイテムを追加する「追加」アクションを実行します。
(x)ボタンは、レコードを削除するためにperson.deleteRecordを呼び出す「削除」アクションを実行します
これが最初に表示されるものです。
- (+)(×)
最初のアクション - [追加] をクリック
したがって、「クリック」アクションを実行すると、次のようなリストが得られます。
- Person1 <- これは実際には DropdownList (コントロールを選択)
- (+)(×)
現在、すべての Select の目次は次のとおりです。
["Person2"、"Person3"、"Person4"、"Person5"]
2 番目のアクション - [追加] をクリック
- 人物1
- 人物2
- (+)(×)
Select の目次:
["Person3"、"Person4"、"Person5"]
3 番目のアクション - 選択
Person2 を Person5 に変更します。
- 人物1
- 人物5
- (+)(×)
目次:
["人2"、"人3"、"人4"]
4 番目のアクション - クリックして削除
ここで、Person1 をリストから削除します
- 人物5
- (+)(×)
目次:
["Person1:, "Person2", "Person3", "Person4"]
ご覧のとおり、選択したコンテキストでテーブルの内容が変化しています。
問題:
テンプレートの選択ビューには、コンテンツテーブルにバインドする contentBinding がありますが、既に選択されているアイテムを削除すると、html select-option 属性に表示されません。selectionBinding を使用しようとしましたが、そのようには機能していないようです。
私の知る限り、次のことを行う必要があります。
- 2 つのリストを使用します。
- 選ばれた人
- notSelectedPersons
- CollectionViewとItemViewを使用して、各 Select 要素を個別に追跡します
- notSelectedPersons を使用して各 {{view Select contentBinding }} にフィードします
- 各 {{view Select selectionBinding }} にselectedPersonsをフィードします
上記のような結果を達成する ember.js の可能性はありますか?