Как получить элементы ecm.widget.viewer.ContentViewer
У меня есть страница, где первая половина (вертикальная) страницы имеет gridx, а вторая половина страницы имеет ContentViewer. Когда пользователь нажимает на элемент из сетки, я загружаю соответствующее изображение и работает нормально. Когда пользователь нажимает на второй элемент из сетки, зритель загружает второе изображение, но проблема заключается в том, что оно также сохраняет первое изображение (изображения открываются в виде вкладки). Поэтому мне нужно удалить первое изображение при загрузке второго изображения. Есть ли способ получить элементы из ContentViewer, чтобы я мог закрыть предыдущий перед загрузкой нового?
2 ответа
Хорошо, вот что я сделал, чтобы добиться этого.
if(this.imgViewer.mainTabContainer.getChildren().length>0){
array.forEach(this.imgViewer.mainTabContainer.getChildren(),function(child){
this.imgViewer.mainTabContainer.removeChild(child);
});
}
Метод getViewersStatus() ContentViewer вернет вам структуру, которая включает в себя все открытые в данный момент элементы. Затем вы можете выполнить итерацию и вызвать closeItem() для каждого из них.
Но если вы используете Navigator 2.0.3.3 или более позднюю версию, вероятно, вы захотите вызвать closeAllViewers() в виджете ContentViewer, чтобы закрыть все открытые элементы без запроса на сохранение изменений.