Angulaire de l'INTERFACE utilisateur-Routeur ouvrir la fenêtre modale sur le changement d'url
- Je utiliser angular-ui-router et angulaire-bootstrap dans mon projet.
Je veux mettre en œuvre, suivre de cas d'utilisation:
Lorsque l'utilisateur clic sur "edit", UI-Router changement d'URL et ouvrir la fenêtre modale. Quand je reviens en cliquant sur le bouton précédente du navigateur, fenêtre modale est en cours de fermeture.
Si l'utilisateur de recharger la page lors de la fenêtre modale s'ouvre, l'application devrait rendre modale du contenu de la fenêtre principale de l'interface utilisateur-vue conteneur.
Ce cas d'utilisation que vous pouvez voir sur ce sire: http://canopy.co/ (essayez de cliquer sur l'article et recharger la page)
Question: Comment mettre en œuvre des comportements décrits ci-dessus?
Voici mon 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(){});
Vous devez vous connecter pour publier un commentaire.
Il est un bon exemple ici sur l'interface utilisateur du routeur Faq. La clé est d'utiliser le onEnter param.
https://github.com/angular-ui/ui-router/wiki/Frequently-Asked-Questions#how-to-open-a-dialogmodal-at-a-certain-state
$modal
il se ferme, mais il ne génère pas d'événement pour l'état reste le même. Une idée de comment résoudre ce problème?then
(séparée rappels par une virgule). Cette deuxième fonction de lancement surdismiss
et aussi quand modal est fermé en appuyant sur la touche Echap ou en cliquant sur la superposition.Voici un problème sur l'INTERFACE utilisateur du Routeur Github décrivant ce que vous essayez de faire:
Les transitions de l'état similaire à Pinterest de superposition
Vous pouvez voir la mise en œuvre de cette répondre. Notez bien que la façon dont ils ont été la réalisation de l'effet que vous voulez a été corrigé dans la dernière version et qu'ils utilisent une ancienne version de l'INTERFACE utilisateur du Routeur afin de maintenir la fonctionnalité.