我正在尝试使用$state.go函数实现“在新标签页中打开链接”的功能。如果有类似以下的东西就太好了:
$state.go('routeHere', {
parameter1 : "parameter"
}, {
reload : true,
newtab : true // or smth like target : "_blank"
});
有没有使用AngularJS实现这个的方法?
我正在尝试使用$state.go函数实现“在新标签页中打开链接”的功能。如果有类似以下的东西就太好了:
$state.go('routeHere', {
parameter1 : "parameter"
}, {
reload : true,
newtab : true // or smth like target : "_blank"
});
有没有使用AngularJS实现这个的方法?
更新:好的,我刚刚使用以下代码解决了它:
var url = $state.href('myroute', {parameter: "parameter"});
window.open(url,'_blank');
我刚刚尝试了一下——显然,在ui-sref
中添加target="_blank"
可以起作用:
<a ui-sref="routeHere" target="_blank">A Link</a>
省去了在控制器中添加代码的麻烦,同时像普通链接一样悬停时会给您提供URL。双赢!
<a ui-sref="routeHere" target="_blank" class="btn btn-primary" role="button">链接</a>
- Safwan如果你的应用程序在子文件夹中,它可能在本地主机上无法正常工作。我曾经遇到过同样的问题。
我尝试了在线方案,通过使用以下方法解决:
<a ui-sref="routeHere" target="_blank">Link</a>
我遇到了类似的问题,如果之前的回答没有帮到你,尝试一下这个方法。
var url = '#' + $state.href('preview');
window.open(url,'_blank');
'#'
,它只会重定向到 而不是localhost/preview
。我这里并不讨论传递数据,只是为了在新标签页中打开 $state。localhost/Project_Name/#/preview
ui-sref="routeHere" href=""target="_blank"
这段代码解决了我的问题。
在锚点标签中使用此代码。
angular.module("AppName").config(['$provide', function ($provide) {
$provide.decorator('$state', ['$delegate', '$window',
function ($delegate, $window) {
var extended = {
goNewTab: function (stateName, params) {
$window.open(
$delegate.href(stateName, params, { absolute: true }), '_blank');
}
};
angular.extend($delegate, extended);
return $delegate;
}]);
}]);
$state.goNewTab('routeHere', { parameter1 : "parameter"});
<a ui-sref="routeHere({parameter: vm.parameter})" target="_blank"></a>