簡體   English   中英

AngularJs - 在新標簽頁中打開網址

[英]AngularJs - Open url in new tab

我有一個公共頁面和管理頁面的應用程序。 我想在登錄后在新標簽頁中打開管理頁面。 我在登錄成功后嘗試了這一點,但沒有效果。 正在重新加載公共頁面(登錄的位置):

var url = $state.href('/admin/overview');
$window.open(url, '_blank');

任何提示將不勝感激。 謝謝。

這是一個有效的JSFiddle ,你必須先注入$window才能使用它:

JS:

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

HTML:

<div ng-app="myApp" ng-controller="dummy"> 
    <a ng-href="" ng-click="redirectToGoogle()">Hello</a>
</div>

這是另一個有效的JSFiddle

HTML:

<div ng-controller="MyCtrl">
<a ng-href="{{url}}" target="_blank">Visit jsfiddle</a>
</div>

JS:

var myApp = angular.module('myApp',[]);
function MyCtrl($scope) {
    $scope.url ='http://jsfiddle.net/HB7LU/16771/';
}

在新標簽中打開鏈接的簡單方法,

 <a href="{{details.website}}" ng-click="openNewTab(details.website)"> 
    {{details.website}}
 </a>
     $scope.openNewTab = function (url) 
    {
      $window.open(url, '_blank');
     };

在使用之前,您應該在控制器中注入$window

你可以有一個指令來為你做這件事。

 directives.redirect = function ($location, $window, $rootScope) { return { link: function (scope, element, attrs) { element.on("click", function () { if (!attrs.newwindow || attrs.newwindow == false) { $location.path(attrs.redirect); scope.$apply(); } else { var baseUrl = $location.$$absUrl.toString().substring(0, decodeURIComponent($location.$$absUrl).toString().indexOf($location.$$path.toString(), $location.$$absUrl.toString().indexOf("#")) + 1) + attrs.redirect; $window.open(baseUrl); } }); } } } 

在HTML中,您可以使用以下內容在新標簽中打開:

<a redirect="/admin/overview" newwindow="true">Open in new tab</a>

我使用它並且它有效(angular4 +): <button mat-menu-item> <a href="/faq/" target="_blank" style="color: inherit; text-decoration: none;"> <mat-icon>help</mat-icon>FAQ </a> </button>

我必須將顏色恢復為默認值並覆蓋瀏覽器的顏色。 這仍然給我漣漪效果和零javascript代碼的一切。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM