J'essaie de faire ce qui était essentiellement répondu ici ici incapable Pour ouvrir la fenêtre modale de bootstrap comme itinéraire
MA SOLUTION NE FONCTIONNE PAS. Je reçois une erreur p>
Erreur: [$ INJUSTEUR: DEL] Fournisseur inconnu: $ modalprovider p>
appControllers.controller('LoginCtrl', ['$scope', '$modal', function($scope, $modal) {
$modal.open({templateUrl:'modal.html'});
}]);
4 Réponses :
Je travaille sur quelque chose de similaire et c'est ma solution.
code HTML p> configuration de l'état p> Contrôleur à domicile P> angular.module("app").controller('ModalInstanceController', function($scope, $modalInstance, $state, newPath, oldPath) {
$modalInstance.opened.then(function(){
$state.go(newPath);
});
$modalInstance.result.then(null,function(){
$state.go(oldPath);
});
$scope.$on('$stateChangeSuccess', function () {
if($state.current.name != newPath){
$modalInstance.dismiss('cancel')
}
});
});
J'ai trouvé un indice pratique pour que cela fonctionne. Il y a probablement des mises en garde, mais cela fonctionne pour moi. Vous pouvez passer un résultat Utilisation de sauvegarder l'état précédent à $ rootscope strong> p> code> toujours mais je n'en ai pas besoin d'un.
enfin code> au lieu du
, puis code> promesse résolve résolve triée ceci pour moi . J'ai aussi dû stocker l'état précédent sur Rootscope afin que nous sachions quoi revenir à. P>
$stateProvider.state('contact', {
url: '/contact',
onEnter: function ($state, $modal, $rootScope){
$modal.open({
templateUrl: 'views/contact.html',
controller: 'ContactCtrl'
}).result.finally(function(){
$state.go($rootScope.previousState);
})
}
});
Bonjour, j'ai eu du mal à traverser le problème similaire.
Cependant, j'ai pu le résoudre.
C'est ce que vous auriez probablement besoin. Cliquez ici pour PLUCKER. J'espère que cela aide. P> p>
Cela ne semble pas fermer la boîte de dialogue lorsque vous appuyez sur
Vous pouvez créer un état avec le même et dans le contrôleur de la page, utilisez ce paramètre pour ouvrir le modal p> templateRL code> et
Controller code> comme page où vous souhaitez afficher l'objet modal, ajout de
parames code> objet à Il
Votre contrôleur n'a pas besoin de
'$ modal' code> comme une dépendance que vous avez chargée
'ui.bootstrap' code> dans vos dépendances de l'application. Pourriez-vous essayer de le supprimer? (Mais laissez le
$ modal code> dans le paramètre de fonction contrôleur););)
Nope - maintenant je reçois
RéférenceError: $ modal n'est pas défini code>
Également vérifié pour vous assurer que l'ui-bootstrap.js angulaire est chargé après angular.js, et c'est
Ok, et n'est pas
'ui.bootstrap.modal' code> un module séparé de
'ui.bootstrap' code>? Peut-être essayez-vous de le charger dans vos dépendances de votre application ou de contrôleur. Je n'utilise que le modal de l'UI-Bootstrap angulaire et c'est comme ça que je le charre.
J'ai la complète JS - moins je crois que je le fais - il contient cette ligne:
.provider ('$ modal', fonction () { code>
@glepretre Ce n'est pas le cas. @Daren, c'est étrange:
'ui.bootstrap', 'ui.bootstrap.tpls' code> - Vous ne devez pas avoir besoin de 2 dépendances différentes,
'ui.bootstrap' code> devrait être assez. En tout cas, un plunker vous donnerait une réponse en un rien de temps ...
Je peux supprimer le
'ui.bootstrap.tpls' code> dépendance - ne semble pas casser quoi que ce soit d'autre. En ce qui concerne le plunker - je crois que j'ai à peu près copié cela - Sans le nègille que j'utilise Ui-routeur plnkr.co/edit/33572YOSA2S89UELMKB?p=preview
Pourrait-il être que vous injectionnez «ui-bootstrap» dans l'application et non appcontrôleurs?
@Mattway - pas idée ici..
On dirait que vous pourriez avoir à essayer de recréer le problème dans un violon / plunk
ajouté un - bien que comme ma solution, ce n'est pas une chose sanglante soit O_O