我有兩個集合實例:項目和部分。Backbone.js:如何在事件中識別父視圖的模型?
每個部分可以有多個項目,每個項目可以出現在多個部分中。
當我將項目添加到節中時,我想獲取該項目的散列並將其保存到節的數組屬性中。此數組屬性用於確定在每個部分中顯示哪些項目。
所以,假設我有一個ItemListModel有100個項目,並且我有一個'item'屬性與數組[item3_id_hash,item27_id_hash,item59_id_hash]的部分。當我顯示SectionView時,我首先將這些散列ID映射到Items集合以獲取這些對象,然後創建一個僅顯示這些對象的ItemsView。
我遇到的問題是在創建時刪除這些項目,以便我可以獲取它們的ID並將它們從section.item屬性數組中添加/刪除。
我可以想象一個駭客解決方案,通過設置一個名爲parent的全局變量來標識添加的項目。但是我想避免使用全局變量。
刪除完全是另一回事。當用戶單擊X來刪除視圖中的項目時,我無法弄清楚如何識別父節的模型,或者至少標識其ID。
實施例視圖:
- Section_1
- ITEM_1
- ITEM_2
- ITEM_3
- Section_2
- ITEM_4
- Item_5
- Item_6
如果用戶從視圖中刪除ITEM_2,我怎麼能得到Section_1.model.get( 'ID'),所以我可以得到section_1對象,然後刪除'Section'_1中的'items'數組屬性的Item_2的'id'
我能想到的唯一解決方案是在爲Section_1繪製ItemsView時將Section_1的'id'傳遞給HTML視圖。這是hackish和脆弱的,所以我試圖避免它。
FYI:SectionListView實例化一個或多個SectionsViews,每個實例化一個ItemListView,其中實例化一個或多個ItemViews
鑑於我非常具體的用例,我沒有看到我可以如何回到模型中的部分。基本上我試圖創造的是相當於「符號鏈接」。我只希望該部分保存到添加到它的項目的符號鏈接。我不希望這些部分自己包含這些項目,因爲同一個項目可以存在於多個部分中。如何在單個Section模型中保存對項目模型的引用? – 2010-12-01 16:02:28