2017-08-13 4 views
0

Ce que je suis en train de travailler sur un site web AngularJS. Un collègue a suggéré que l'inconvénient de la solution dynamique est que si vous ouvrez un bouton dans un nouvel onglet (par exemple un onglet "À propos de nous"), il vous ramène à la première page et l'actualise. J'utilise la directive ng-show comme:AngularJS - ouverture d'un lien dans un nouvel onglet pour changer la valeur ng-show à la place

 <div class="container marketing show-hide" ng-show="tab === 2"> 

pour créer des pages dynamiques. Je veux réaliser ceci:

Quelqu'un essaye de cliquer sur le bouton "À propos de nous" pour l'ouvrir dans un nouvel onglet. Au lieu de l'emmener sur la page d'accueil dans le nouvel onglet, il change la valeur ng-init à 2, 3, ou quelle que soit la valeur du bouton cliqué, de sorte qu'en l'ouvrant dans un nouvel onglet, il est par défaut le contenu assigné au nombre, et non la première page, qui est définie par ng-init = « tab = 1 »

OU

au lieu d'ouvrir un nouvel onglet, il détourne en quelque sorte la demande et ne modifie que la ng valeur à la valeur correspondante, en ouvrant l'élément sans ouvrir un nouvel onglet.

Voici le site, si vous êtes intéressé:

www.kreo-it.pl

Le point d'intérêt sont les boutons en haut à barre de navigation. Gardez à l'esprit que c'est un travail en cours.

+0

Je vois à propos de nous affichant son propre contenu. alors qu'est-ce que tu veux dire exactement? – HebleV

Répondre

0

Vous pouvez profiter de $routeParams, quelque chose comme /:tabId et ensuite dans votre logique pour cette vue, vous montrer tout ce qui est lié à ce tabId. Par exemple, dans votre contrôleur, vous pouvez entrer $routeParams et attribuer une valeur à $scope.tab = $routeParams.tabId, puis votre ng-show récupèrera cette valeur à partir de l'URL à laquelle l'utilisateur est actuellement. Cependant, cela semble être un bon cas d'utilisation pour implémenter un routeur avec un chemin /about et ainsi de suite pour les diverses informations que vous essayez d'afficher. Ou n'utilisez-vous pas un routeur actuellement?