2017-03-27 1 views
0

J'ai 2 pages: /teams et page modifier équipe /teamedit/:1, voici les itinéraires:ngRoute continue de retomber à .otherwise la route après avoir utilisé bouton retour

app.config(['$routeProvider', '$locationProvider', function ($routeProvider, $locationProvider) { 
    var viewBase = '/views/'; 

    $routeProvider 
     .when('/teams', { 
      controller: 'teamsController', 
      templateUrl: viewBase + 'teams/teams.html', 
      controllerAs: 'vm' 
     }) 
     .when('/teamedit/:id', { 
      controller: 'teamEditController', 
      templateUrl: viewBase + 'teams/teamEdit.html', 
      controllerAs: 'vm' 
     }) 
     .otherwise({ redirectTo: '/agents' }); 

    $locationProvider.html5Mode(true); 
}]); 

Voici les étapes qui me cause problème:

  1. Sur la page /teams, cliquez sur le bouton ce qui ouvre la page /teamedit/1. Pour cela, j'utilise $location.path(url + team); dans le contrôleur.
  2. /teamedit/1 est chargé et je clique sur navigateur bouton retour

maintenant de retour sur /teams la page i cliquez sur le bouton à nouveau ce qui devrait me prendre à la page /teamedit/1 mais il ne fait charges Bage pour un second (code du contrôleur et tout est exécuté), puis redirige vers la page qui est définie dans .otherwise.

Il n'y a pas de raison pour que cela devienne otherwise, comment puis-je résoudre ce problème?

EDIT: Ajout de code. bouton qui ouvre/page teamedit:

<button class="btn btn-primary" ng-click="vm.edit('/teamedit/', team.teamId)"> <i class="glyphicon glyphicon-edit"></i> Edit</button> 

teamsController:

(function() { 
    'use strict'; 

    angular 
     .module('actionSyncAdminApp') 
     .controller('teamsController', teamsController); 

    teamsController.$inject = ['$scope', '$location', 'teamsService', 'broadcaster', 'ngProgressFactory']; 

    function teamsController($scope, $location, teamsService, broadcaster, ngProgressFactory) { 
     $scope.title = 'teamsController'; 

     var vm = this; 

     vm.progressbar = ngProgressFactory.createInstance(); 
     vm.progressbar.setParent(document.getElementById('sub-page')); 

     vm.teams = []; 

     vm.new = function (url) { 
      $location.path(url); 
     }; 
     vm.edit = function (url, team) { 
      console.log(url + team); 
      $location.path(url + team); 
     }; 

     activate(); 

     function activate() { 
      vm.progressbar.start(); 
      teamsService.getTeams().then(function (teams) { 
       vm.progressbar.complete(); 
       vm.teams = teams; 
      }); 
     } 
    } 
})(); 
+0

cela pourrait être causé par quelque chose dans votre contrôleur. S'il vous plaît nous montrer que le code –

+0

'$ location.path (url + équipe)' S'il vous plaît assurez-vous que la variable 'url' doit avoir'/'à la fin de la chaîne sinon votre URL deviendra'/teamedit1' qui peut rediriger vers 'sinon ' –

+0

@AJFunk, j'ai ajouté du code supplémentaire à la publication originale. @MaheshSinghChouhan, oui j'ai le '/' à la fin de l'URL. Vérifiez le code de la publication originale. – hs2d

Répondre

0

Je trouve le problème. C'était juste une erreur stupide de ma part. J'ai eu l'button dans un <a href ></a> comme ceci:

<a href tabindex="0" class="accordion-toggle" ng-click="toggleOpen()" uib-accordion-transclude="heading"> 
    <span uib-accordion-header ng-class="{'text-muted': isDisabled}"> 
     <button type="button" class="btn btn-primary" ng-click="vm.edit('/teamedit/', team.teamId)"> <i class="glyphicon glyphicon-edit"></i> Edit</button> 
    </span> 
</a> 

étrange tu ce que le bouton cassé, après avoir utilisé le bouton retour et non la première fois après chargement de la page. De toute façon tout va bien maintenant :)