abrir um modal em uma rota no AngularJS com angular-ui-bootstrap
Eu estou tentando fazer o que foi essencialmente respondido aquiNão foi possível abrir a janela modal de autoinicialização como uma rota
No entanto, minha solução simplesmente não funcionará. Eu recebo um erro
Error: [$injector:unpr] Unknown provider: $modalProvider <- $modal
My app has the ui.bootstrap module injected - here is my application config
var app = angular.module('app', ['ui.router', 'ui.bootstrap','ui.bootstrap.tpls', 'app.filters', 'app.services', 'app.directives', 'app.controllers'])
// Gets executed during the provider registrations and configuration phase. Only providers and constants can be
// injected here. This is to prevent accidental instantiation of services before they have been fully configured.
.config(['$stateProvider', '$locationProvider', function ($stateProvider, $locationProvider) {
// UI States, URL Routing & Mapping. For more info see: https://github.com/angular-ui/ui-router
// ------------------------------------------------------------------------------------------------------------
$stateProvider
.state('home', {
url: '/',
templateUrl: '/views/index',
controller: 'HomeCtrl'
})
.state('transactions', {
url: '/transactions',
templateUrl: '/views/transactions',
controller: 'TransactionsCtrl'
})
.state('login', {
url: "/login",
templateUrl: '/views/login',
controller: 'LoginCtrl'
})
.state('otherwise', {
url: '*path',
templateUrl: '/views/404',
controller: 'Error404Ctrl'
});
$locationProvider.html5Mode(true);
}])
Reduzi meu controlador para o seguinte:
appControllers.controller('LoginCtrl', ['$scope', '$modal', function($scope, $modal) {
$modal.open({templateUrl:'modal.html'});
}]);
Em última análise, o que espero conseguir é que, quando o login for necessário, não vá realmente para a página de login, mas abra um diálogo.
Eu também tentei usar oonEnter
função noui-router
método de estado. Não foi possível fazer isso funcionar também.
Alguma ideia?
ATUALIZAR
Ok - pelo que parece, ter ui-bootstrap.js e ui-bootstrap-tpls quebra isso - Depois de ler os documentos, pensei que você precisava dos modelos para trabalhar com o ui-bootstrap. embora pareça que todos os plunkers carregam apenas no arquivo ..tpls - depois que eu removi o arquivo ui-bootstrap, meu modal funciona ... Estou cego? ou realmente não diz qual você precisa nos documentos no github? -
Agora eu só preciso descobrir como impedir que meu URL vá para / login, em vez de apenas mostrar o modal :)
atualização 2
Ok, então, chamando $ state.go ('login') em um serviço faz isso por mim.