0

J'utilise les dalles md-grid comme liens vers de nouvelles pages sur un site. Pour donner un peu de contexte, j'ai une application AngularJS 1 qui est une application d'une seule page utilisant ng-view. Donc, mes liens sont tous formatés aveC#page. Chaque tuile est donné un attribut appelé lien et j'ai joint cette fonction:

$scope.direct = function(tile) { 
    $window.location.href = tile.link; 
} 

à la partie ng-cliquez sur mon md-grille tuiles:

<md-grid-tile ng-repeat="tile in vm.tiles track by $index" 
           md-rowspan="{{tile.span.row}}" 
           md-colspan="{{tile.span.col}}" 
           md-colspan-sm="1" 
           md-colspan-xs="1" 
           ng-class="tile.background" 
           ng-click="direct(tile)"> 

et la variable tile.link sera être '#newpagetogoto'

Cela fonctionne comme prévu, mais la fonctionnalité du bouton de retour n'est pas là après que je réachemine en utilisant cette méthode. Lorsque je repasse en arrière après avoir accédé à la nouvelle page, il recharge simplement cette nouvelle vue et ne me remet pas sur la page d'accueil. Y'a t'il un moyen d'arranger cela?

Si j'utilise <a> pour créer un lien vers de nouvelles vues de mon site, la fonctionnalité du bouton de retour fonctionne comme prévu, mais seulement lorsque j'utilise $ window.location.href cela gâche la fonctionnalité du bouton de retour.

Exemple d'utilisation <a>:

<a href="#about" onclick="closeNav()">Our Purpose</a> 

Toute aide est très apprécié, merci d'avance!

EDIT: En utilisant <a> ne tient pas vraiment la fonctionnalité du bouton de retour, il rompt également le routage en utilisant le lien <a>.

Répondre

0

Vous devez utiliser $ emplacement au lieu de la fenêtre $

$location.path(title.link) 

Jetez un oeil documentation $ location: https://docs.angularjs.org/guide/ $ location

+0

J'ai essayé d'utiliser location.path de $ (de tile.link), mais il fait encore pas revenir à la dernière vue. L'utilisation de $ location forcera à revenir à la dernière URL chargée, donc si je devais aller de google à mon site et cliquer sur un lien pour montrer une nouvelle vue, quand je clique dessus, cela me ramènera à google et non à vue principale qui a les liens. Merci pour l'aide, j'ai fini par ajouter des liens aux carreaux de grille et les faire 100% largeur et hauteur qui leur permet de cliquer sur la nouvelle vue et aussi revenir à la vue précédente –