Estou com um problema ao alterar o URL da página após o envio de um formulário.
Aqui está o fluxo do meu aplicativo:
- As rotas são definidas, o URL é reconhecido em alguma página do formulário.
- Página carrega, controlador define variáveis, diretivas são acionadas.
- Uma diretiva de formulário especial é acionada que executa um envio de formulário especial usando AJAX.
- Depois que o AJAX é executado (o Angular não cuida do AJAX), um retorno de chamada é acionado e a diretiva chama a
$scope.onAfterSubmitfunção que define o local.
O problema é que, depois de definir o local, nada acontece. Eu tentei definir o parâmetro de localização /também ... Não. Também tentei não enviar o formulário. Nada funciona.
Eu testei para ver se o código atinge a onAfterSubmitfunção (o que faz).
Meu único pensamento é que, de alguma forma, o escopo da função é alterado (desde que é chamado de uma diretiva), mas, novamente, como ele pode chamar onAfterSubmitse o escopo foi alterado?
Aqui está o meu código
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'];
Alguém me pode ajudar, se faz favor?