J'essaye donc une redirection angulaire mais je n'ai qu'une partie du chemin. Pour le moment, j'ai réussi à changer l'URL, mais je veux ensuite accéder à cette URL au lieu de simplement la changer.

    scope.socialReturnUrl = function ( path ) {
      location.url( path + 'assessment' );
    };

Mon code ci-dessous semble ne changer que l'URL ou l'emplacement. Que me manque-t-il pour appliquer cela afin qu'il soit redirigé?

Je dois souligner que j'ai déjà essayé d'utiliser scope $ apply (), mais cela provoque l'erreur ci-dessous:

Scope $ apply n'est pas défini

J'ai déjà une portée en tant que dépendance mais je n'ai pas de dépendance apply. Est-ce quelque chose dont j'ai besoin?

Dis moi ce que tu penses!

0
Max Lynn 17 juil. 2015 à 19:21

2 réponses

Meilleure réponse

C'est vrai ... j'ai corrigé ça moi-même

Apparemment, location.url () ne fera pas une actualisation complète comme indiqué dans la documentation.

https://docs.angularjs.org/guide/ $ location

Cependant, vous devez ajouter la dépendance $ window et utiliser le code ci-dessous pour que la page effectue un rechargement complet de la page.

Window.location.href = chemin + 'évaluation';

0
Max Lynn 17 juil. 2015 à 16:41

Vous devez injecter le service $ location dans votre contrôleur afin de modifier le url. Sinon, vous appellerez la window.location à la place, ce qui n'est pas ce que vous devriez faire.

var app = angular.module('myApp');
app.controller('MyController',
    ['$scope', '$location',
    function($scope, $location) {
        $scope.socialReturnUrl = function ( path ) {
            $location.url( path + 'assessment' );
        };
    }])
2
Patrick 17 juil. 2015 à 16:41