В настоящее время я использую angular-ui-bootstrap $ modal для отображения диалога, который позволяет пользователю искать и выбирать файл. Список файлов взят с box.com, поэтому я использую API-интерфейс box для поиска файлов и создания эскиза для отображения рядом с каждым файлом в результатах поиска.
Создание эскизов происходит довольно медленно, и пользователю необходимо несколько раз вызывать это диалоговое окно поиска на одной и той же странице. Поэтому для пользователя было бы полезно, если бы диалоговое окно поиска содержало предыдущие результаты поиска при повторном открытии.
Вопрос в том, как я могу повторно использовать (т.е. показывать/скрывать) один и тот же модальный экземпляр? Кажется, Angular-UI уничтожает/воссоздает диалог каждый раз. То же самое с угловым ремешком.
Изменить
Вот Плункер:
var app = angular.module('plunker', ['ui.bootstrap']);
var ModalDemoCtrl = function($scope, $modal, $log) {
$scope.open = function() {
var modalInstance = $modal.open({
templateUrl: 'myModalContent.html',
controller: ModalInstanceCtrl,
});
modalInstance.result.then(function() {
$log.info('Modal closed at: ' + new Date());
}, function() {
$log.info('Modal dismissed at: ' + new Date());
});
};
};
// Please note that $modalInstance represents a modal window (instance) dependency.
// It is not the same as the $modal service used above.
var ModalInstanceCtrl = function($scope, $modalInstance) {
$scope.friends = [{
name: 'John',
phone: '555-1276'
}, {
name: 'Mary',
phone: '800-BIG-MARY'
}, {
name: 'Mike',
phone: '555-4321'
}, {
name: 'Adam',
phone: '555-5678'
}, {
name: 'Julie',
phone: '555-8765'
}, {
name: 'Juliette',
phone: '555-5678'
}];
$scope.ok = function() {
$modalInstance.close('close');
};
$scope.cancel = function() {
$modalInstance.dismiss('cancel');
};
};