2015-10-29 4 views
0

Мне нужны два магазина, у которых почти одинаковые макеты и данные, и я думал использовать цельный магазин.ExtJS закодированный магазин добавить записи

В магазине 1, я загрузить две дюжину или около того записей, и привязать его к какому-то MULTISELECT комбобокса:

data:[{ 
    name: 'Red items', 
    color: 'red', 
},{ 
    name: 'Yellow items', 
    color: 'yellow' 
}] 

Так что с этим выпадающим списком, вы можете выбрать, должен ли элемент будет красным и/или желтым.

А потом у меня есть список элементов, которые я фильтрую на основе поля тега. Это поле тега бы предоставить мне следующее: Все детали из магазина 1 и, кроме того

{ 
    name:'Items without color', 
    color: false 
},{ 
    name:'Items with any colors', 
    color: true 
} 

(Так что это не имеет смысла, чтобы показать точно такой же выбор в выпадающем списке и поле тэга.)

Я предполагаю, что я выведет последний магазин из первого, а затем я бы добавил две записи в этот магазин. Но когда я пытаюсь добавить запись во второй магазин, она также добавляет запись в первую. И затем, всякий раз, когда я загружаю новые записи в первый магазин, это не только то, что записи из этого магазина обновляются во втором магазине, но и другие записи также теряются.

Может кто-то пролить свет на детали?

ответ

0

Это просто не работает; нельзя добавлять записи в ChainedStore, только скрывать их (используя фильтр). Так что же работа заключается в следующем:

Сделать магазин 2 нормальный магазин и загрузить в него

data:[{ 
    name:'Items without color', 
    color: false 
},{ 
    name:'Items with any colors', 
    color: true 
},{ 
    name: 'Red items', 
    color: 'red', 
},{ 
    name: 'Yellow items', 
    color: 'yellow' 
}] 

и сделать магазин 1 цепного магазин, используя магазин 2 в качестве источника, а также фильтр, удаляет некоторые предметы, скрывая их:

filterFn:function(item) {return Ext.isBoolean(item.get("color"); } 
Смежные вопросы