Używam UI-Routera i kątowego bootstrap-ui. Mam konfigurację stanu, aby utworzyć modalne "onEnter". Mam problemy teraz, gdy próbuję zamknąć modalny "onExit". Oto podstawowy stan. Otworzy modalny po wpisaniu "items.detail" i przejdzie do "pozycji", gdy ten modal jest zamknięty lub zwalniany.Konieczność zamknięcia modala przy wyjściu stanu
.state('items.detail', {
url: '/{id}',
onEnter: function ($stateParams, $state, $modal, $resource) {
var modalInstance = $modal.open({
templateUrl: 'views/modal/item-detail.html',
controller: 'itemDetailCtrl'
})
.result.then(function() {
$state.transitionTo('items');
}, function() {
$state.transitionTo('items');
});
}
})
Próbowałem już używać programu obsługi OnExit, jak w ten sposób. Ale nie były w stanie uzyskać dostępu do modalInstance lub zakresu, w którym modal jest z tego handlera. Wszystko, co próbuję wstrzyknąć, pojawia się nieokreślone.
.state('items.detail', {
url: '/{id}',
onEnter: function ($stateParams, $state, $modal, $resource) {
var modalInstance = $modal.open({
templateUrl: 'views/modal/item-detail.html',
controller: 'itemDetailCtrl'
})
.result.then(function() {
$state.transitionTo('items');
}, function() {
$state.transitionTo('items');
});
},
onExit: function ($scope) {
controller: function ($scope, $modalInstance, $modal) {
$modalInstance.dismiss();
};
}
})
z kontrolera mojego modala Próbowałem słuchać zmian stanu.
$scope.$on('$stateChangeStart', function() {
$modalInstance.dismiss();
});
Próbowałem to zarówno z zakresu $. $ I $ na rootScope. $ I na obu tych prac, ale w końcu jest wywoływana za każdym razem, gdy przejście między dowolnymi stanach. Zdarza się to jednak dopiero po tym, jak otworzyłem modal.
W przypadku, gdy ten ostatni fragment jest niejasny ... Kiedy odświeżam swoją kanciastą aplikację, mogę przełączać się między wszystkimi moimi innymi stanami bez wywoływania tego zdarzenia słuchacza, ale po tym, jak otworzę ten modal, wszystkie moje zmiany stanu zostaną wywołane przez to słuchacza, nawet po zamknięciu modala.
Dziękuję, to wydaje się być o wiele lepszym rozwiązaniem i było łatwe do wdrożenia. – Constellates
Witaj, powodzenia :) – Armen
Czekajcie, myślę, że w ogniu chwili źle zrozumiałem, co się dzieje. Teraz, gdy jestem w domu z pracy, nie zamyka się modalności na zmiany stanu, domyślam się, że to nigdy nie było lub coś zmieniłem. W każdym razie, jaka część tego by zamykać modal kiedy stan jest zostawiony? – Constellates