Javascript AngularJs-在新选项卡中打开url
我有一个公共页面和管理页面的应用程序。我想在登录后在新选项卡中打开管理员页面。 我在登录成功后尝试过这个,但没有效果。正在重新加载公共页面(登录位置):Javascript AngularJs-在新选项卡中打开url,javascript,angularjs,angular-ui-router,Javascript,Angularjs,Angular Ui Router,我有一个公共页面和管理页面的应用程序。我想在登录后在新选项卡中打开管理员页面。 我在登录成功后尝试过这个,但没有效果。正在重新加载公共页面(登录位置): var url = $state.href('/admin/overview'); $window.open(url, '_blank'); 任何提示都将不胜感激。 谢谢。这是一个工作窗口,您必须先插入$window,然后才能使用它: JS: HTML: 这是另一项工作 HTML: 你可以有一个指令为你做这件事 directives.re
var url = $state.href('/admin/overview');
$window.open(url, '_blank');
任何提示都将不胜感激。
谢谢。这是一个工作窗口,您必须先插入$window
,然后才能使用它:
JS:
HTML:
这是另一项工作
HTML:
你可以有一个指令为你做这件事
directives.redirect=函数($location、$window、$rootScope){
返回{
链接:函数(范围、元素、属性){
元素上(“单击”,函数(){
如果(!attrs.newwindow | | attrs.newwindow==false){
$location.path(属性重定向);
作用域:$apply();
}
否则{
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 href="{{details.website}}" ng-click="openNewTab(details.website)">
{{details.website}}
</a>
$scope.openNewTab = function (url)
{
$window.open(url, '_blank');
};
$scope.openNewTab=函数(url)
{
$window.open(url“_blank”);
};
在使用它之前,你应该在你的控制器中注入$window
。我用过这个,它可以工作(angular4+):
我必须将颜色恢复为默认值并覆盖浏览器的颜色。这仍然给了我零javascript代码的连锁反应和一切。你能用小提琴重现错误并在这里发布链接吗?不幸的是不能。我不能用小提琴准确地再现代码。太复杂了,“/admin/overview”是路由名称吗?因为根据文档,您不能将该方法用于URI()。这可能是问题的一部分是的,这是一个路由名称。这可能是问题的原因。但是我找不到一个路由示例,所以我只是尝试了一下。我之前发布的链接显示了几个路由名称示例,这基本上是使用此方法的唯一方法($state.href),这在使用外部URL(如您提供的URL)时非常有效,但在尝试使用路由器ui状态(或URL)时不起作用.这里是exmaple:您的解决方案是将#放在#空白url中。使用此$location.$$absUrl.split(“#”)[0]+attrs.redirect;
<div ng-app="myApp" ng-controller="dummy">
<a ng-href="" ng-click="redirectToGoogle()">Hello</a>
</div>
<div ng-controller="MyCtrl">
<a ng-href="{{url}}" target="_blank">Visit jsfiddle</a>
</div>
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');
};