Öffnen eines Modals in einer Route in AngularJS mit Angular-UI-Bootstrap

Ich versuche zu tun, was hier im Wesentlichen beantwortet wurdeDas modale Bootstrap-Fenster kann nicht als Route geöffnet werden

Aber meine Lösung wird einfach nicht funktionieren. Ich bekomme eine Fehlermeldung

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);

    }])

Ich habe meinen Controller auf Folgendes reduziert:

appControllers.controller('LoginCtrl', ['$scope', '$modal', function($scope, $modal) {
    $modal.open({templateUrl:'modal.html'});
}]);

Letztendlich erhoffe ich mir, wenn eine Anmeldung erforderlich ist, nicht direkt zur Anmeldeseite zu wechseln, sondern einen Dialog aufzurufen.

Ich habe es auch mit dem versuchtonEnter&nbsp;Funktion in derui-router&nbsp;Zustandsmethode. Konnte auch nicht funktionieren.

Irgendwelche Ideen?

AKTUALISIEREN

Ok - es stellt sich heraus, dass sowohl ui-bootstrap.js als auch ui-bootstrap-tpls dies verhindern. Nach dem Lesen der Dokumentation dachte ich, dass Sie die Vorlagen für die Arbeit mit dem ui-bootstrap benötigen. obwohl es so aussieht, als würden alle Plunker nur in die ..tpls-Datei geladen - sobald ich die UI-Bootstrap-Datei entfernt habe, funktioniert mein Modal ... Bin ich blind? oder sagt es nicht wirklich was du in den docs auf github brauchst? -

Jetzt muss ich nur noch herausfinden, wie ich verhindern kann, dass meine URL tatsächlich zu / login wechselt, anstatt nur das Modal anzuzeigen :)

Update 2

Ok, wenn Sie $ state.go ('login') in einem Dienst aufrufen, ist dies für mich erledigt.