Ich benutze angular-UI-Router und angular-Bootstrap in meinem Projekt.Angular UI-Router öffnen modales Fenster auf URL ändern
Ich will follow Anwendungsfall implementieren:
Wenn Benutzer klicken Sie auf „Bearbeiten“ klicken, UI-Router ändern URL und offenen modale Fenster. Wenn ich zurück gehe, indem ich auf den Zurück-Knopf des Browsers klicke, schließt sich das modale Fenster.
Wenn der Benutzer die Seite neu lädt, wenn das modale Fenster geöffnet wird, sollte die Anwendung den modalen Fensterinhalt im Haupt-UI-View-Container darstellen.
Dieser Anwendungsfall können Sie auf diesem Vater sehen: http://canopy.co/ (anprobieren Artikel klicken und lädt Seite)
Frage: Wie oben beschriebenes Verhalten implementieren?
Hier ist meine jsFiddle http://jsfiddle.net/sloot/ceWqw/3/
var app = angular.module('myApp', ['ui.router', 'ui.bootstrap'])
.config(function ($stateProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise('/');
$stateProvider
.state('app', {
url: '/',
controller: 'AppCtrl',
templateUrl: '/views/app.html'
})
.state('item', {
url: '/profile',
controller: 'ItemCtrl',
templateUrl: '/views/item.html'
});
})
.controller('AppCtrl', function($scope, $modal, $state){
$scope.open = function(){
// open modal whithout changing url
$modal.open({
templateUrl: '/views/item.html'
});
// I need to open popup via $state.go or something like this
};
})
.controller('ItemCtrl', function(){});
Als ich 'prevent' Funktion für '$ stateChangeStart' Ereignis, ui-Router nicht url verwenden ändern. Kennen Sie die Lösung für die Änderungs-URL und verhindern das Rendern von Ansichten? –