Angularjs $lieu.url ne fonctionne pas, l'emplacement.href œuvres
Quand j'ai essayer de changer l'emplacement à l'intérieur de mon contrôleur de charge racine du serveur, pas le certaines de page:
'use strict';
eventsApp.controller('TestController',
function TestController($scope, $location){
console.log('test comes here!');
$scope.makeTest = function(){
$location.url('/test');
}
});
J'ai un routeur comme ceci:
'use strict';
var eventsApp = angular.module('eventsApp', ['ngResource','ngSanitize'])
.config(function($routeProvider, $locationProvider){
$routeProvider
.when('/test',{
templateUrl:'templates/test.html',
controller:'TestController'
}).otherwise({
templateUrl:'templates/default.html',
controller:'DefaultController',
redirectTo:''
});
$locationProvider.html5Mode(true);
});
Dans mon index.html j'ai défini la directive
<base href="/">
Il semble que chaque fois qu'il met en œuvre sinon. Cependant, si j'utilise
location.href = '/test';
au lieu de
$location.url('/test');
puis il travaille.
Je n'ai aucune idée à propos d'un tel comportement. Faites-vous?
Vous avez besoin d'utiliser
J'ai essayé de le faire avant. Il me dit: Erreur: $s'appliquent déjà en cours
$scope.$apply()
voir stackoverflow.com/questions/11784656/...J'ai essayé de le faire avant. Il me dit: Erreur: $s'appliquent déjà en cours
OriginalL'auteur srgg6701 | 2014-05-26
Vous devez vous connecter pour publier un commentaire.
Bien que cette question se rapporte à l'état, voici comment vous pouvez naviguer vers une autre url:
Cela devrait fonctionner, mais j'ai vu quelques problèmes avec elle - c'est à dire qu'il va appeler le code mais juste de ne pas aller n'importe où. Si c'est le cas, vous pouvez également utiliser le
$window
service comme suit:OriginalL'auteur Katana24
si vous avez un
$scope.apply()
déjà en cours d'exécution, pensez à utiliser$timeout
comme une solution de contournement.Pas parfait, mais doit faire le travail.
Mieux de cas: définir une variable globale qui vous le réglez sur "chargé" une fois votre api sont fini de se charger, puis de mettre à jour votre fonction/appel de la portée des actions connexes.
$location.url(newUrl)
pas de travail à l'intérieur d'unng-click
gestionnaire.Je suis content qu'il m'a aidé 🙂
OriginalL'auteur Xspirits