Как открыть элементы `<li>` в новой вкладке с помощью параметров запроса в активированном маршруте в Angular - PullRequest
0 голосов
/ 25 мая 2018

У меня есть список элементов, скажем

<li [class.active_view]="Display('A')" (click)="Az()">A</li>
<li [class.active_view]="Display('B')" (click)="Bz()">B</li>
<li [class.active_view]="Display('C')" (click)="Cz()">C</li>

В настоящее время, когда пользователь нажимает на любую вкладку, я использую

this.activatedroute.queryParams.subscribe(query => { 
//some_code_to_set_url
});

, а затем я использую этот URL для перехода ктот.Но при использовании <li> я не могу включить опцию Open in New Tab при щелчке правой кнопкой мыши.Есть ли способ добиться этого с помощью тега <li> (я пытался использовать href, но он нарушает URL и заменяет многие символы, такие как ? на %3F и т. Д.).Как открыть его в новой вкладке и включить его правой кнопкой мыши.

Ответы [ 2 ]

0 голосов
/ 25 мая 2018

Я думаю, что вы всегда можете использовать обходной путь (я не проверяю код, но моя идея такова) в вашем компоненте

<li [class.active_view]="Display('A')" (click)="Az(newpage)">A</li>
<form #newpage [action]="url" target="_blank">

Ваша функция Az

Az(form:any)
{
    this.url="google";
    form.submit();
}
0 голосов
/ 25 мая 2018

Эта опция доступна, только если вы используете теги <a>.Вот почему они там.Кроме того, это семантически неверно.Например, программы чтения с экрана и другое программное обеспечение, которое просто использует код, не сможет получить к ним доступ в виде ссылок.

Кроме того, чтобы открыть их на новых вкладках, либо:

  • Измените их на <a> и дайте target="_blank".
  • Используйте функцию window.open() для открытия URL-адреса.

В Angular JS window.open можно вызвать с помощью $window service:

.controller('exampleCtrl', ['$scope', '$window',
  function($scope, $window) {
    $scope.redirectToGoogle = function(){
      $window.open('https://www.google.com', '_blank');
    };
  }
]);

Ссылка: Открыть новую вкладку при нажатии кнопки в AngularJS

...