Mam problem ze zmianą adresu URL strony po przesłaniu formularza.
Oto przepływ mojej aplikacji:
- Trasy są ustawione, URL jest rozpoznawany do jakiejś strony formularza.
- Ładowanie strony, kontroler ustawia zmienne, uruchamiane są dyrektywy.
- Uruchamiana jest specjalna dyrektywa formularza, która wykonuje przesyłanie specjalnego formularza za pomocą AJAX.
- Po wykonaniu AJAX (Angular nie dba o AJAX), wywoływane jest wywołanie zwrotne, a dyrektywa wywołuje
$scope.onAfterSubmit
funkcję, która ustawia lokalizację.
Problem w tym, że po ustawieniu lokalizacji nic się nie dzieje. Próbowałem również ustawić parametr lokalizacji na /
... Nie. Próbowałem też nie przesłać formularza. Nic nie działa.
Przetestowałem, aby sprawdzić, czy kod dociera do onAfterSubmit
funkcji (co robi).
Moją jedyną myślą jest to, że w jakiś sposób zakres funkcji został zmieniony (ponieważ została wywołana z dyrektywy), ale z drugiej strony, jak może wywołać, onAfterSubmit
jeśli zakres się zmienił?
Oto mój kod
var Ctrl = function($scope, $location, $http) {
$http.get('/resources/' + $params.id + '/edit.json').success(function(data) {
$scope.resource = data;
});
$scope.onAfterSubmit = function() {
$location.path('/').replace();
};
}
Ctrl.$inject = ['$scope','$location','$http'];
Czy ktoś może mi pomóc?