В моето приложение имам CollectionView с ItemView до него (и двамата са видими едновременно). Когато се щракне върху елемент в списъка, ItemView показва подробностите за него.
Лесното решение е да задействате
bigLayout.itemDetailsRegion.show(new ItemDetailsView({
model: modelOfClickedItem
});
Но това кара екземпляра на ItemView, който преди това е бил рендиран, да бъде затворен и събран в боклук, докато нов екземпляр от същия клас се създава и рендира на същото място. На мен и моя екип това мирише на лоша практика (изтриването и повторното създаване на изглед ни се струва безполезно), но прави ли сме?
В момента добавихме метод changeModel(model) към класа ItemView, който
- отменя обвързването на събития към предишния модел
- присвоява новия модел на изгледа
- рендерира изгледа
- свързва нови събития към модела
Но не сме наистина доволни (много пъти превключването на модел е по-сложно от това и това решение не е много мащабируемо).
Има ли нещо, което бихме могли да наречем „най-добра практика“ за този вид нужда? Стандартният начин (както е описан по-горе) добра практика ли е?