我有一个包括公共页面和管理页面的应用程序。我想在登录后在新标签页中打开管理页面。我尝试过在登录成功后执行以下操作,但没有效果。公共页面(登录页面)只是被重新加载:
var url = $state.href('/admin/overview');
$window.open(url, '_blank');
有任何建议都非常感激。 谢谢。
我有一个包括公共页面和管理页面的应用程序。我想在登录后在新标签页中打开管理页面。我尝试过在登录成功后执行以下操作,但没有效果。公共页面(登录页面)只是被重新加载:
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);
}
});
}
}
}
<a redirect="/admin/overview" newwindow="true">Open in new tab</a>
<button mat-menu-item>
<a href="/faq/" target="_blank" style="color: inherit; text-decoration: none;">
<mat-icon>help</mat-icon>常见问题解答
</a>
</button>
我必须将颜色恢复为默认值并覆盖浏览器的颜色。这仍然可以给我带来涟漪效果和零JavaScript代码的所有内容。