Есть ли способ вызвать.opened() в angular-ui modal?
Я пытаюсь выяснить, как вызвать .opened()
для моего модального. Я хочу, чтобы после того, как все данные были загружены в мой модал, я бы хотел .opened()
быть вызванным. Я знаю что opened()
запускается, когда модальный режим уже открыт, есть ли способ изменить это, как, может быть, только вызвать его после того, как я инициализировал значения в моем контроллере?
var modalInstance = $modal.open({
templateUrl: 'myModalContent.html',
controller: 'ModalInstanceCtrl'
});
modalInstance.opened.finally(function() {
doSomething();
});
Asdas
angular.module('ui.bootstrap.demo').controller('ModalInstanceCtrl', function ($scope, $modalInstance, items) {
init();
function init() {
// do initializations here....
// then resolve the opened() function... but how?
}
$scope.ok = function () {
$modalInstance.close($scope.selected.item);
};
$scope.cancel = function () {
$modalInstance.dismiss('cancel');
};
});
1 ответ
Решение
Просто передайте объект с помощью функции onOpen:
$scope.ctrl = {
onOpen: function() {
console.log('open!');
}
};
var modalInstance = $uibModal.open({
animation: $scope.animationsEnabled,
templateUrl: 'myModalContent.html',
controller: 'ModalInstanceCtrl',
size: size,
resolve: {
ctrl: function () {
return $scope.ctrl;
}
}
});
а потом:
function init() {
ctrl.onOpen();
}