我想要做的是进入新标签页或新窗口:
$state.go('studentsReport', {
type: $scope.report.type, // string
selectedStudents: $scope.selectedStudents // array of strings
});
如果我这样做了:
var link = $state.href('studentsReport', {
type: $scope.report.type,
selectedStudents: $scope.selectedStudents
});
window.open(link, '_blank');`
我会丢失参数。
祝你好运, 烫发
答案 0 :(得分:5)
你应该尝试使用它:
/* @ngInject */
function SomeCtrl ($state, $window) {
$window.open($state.href('stateName', {}, {absolute: true}), '_blank');
}
注意:如果使用ng-annotate(cli,gulp和grunt版本中提供),/* ngInject */
便于自动依赖注入注释
答案 1 :(得分:0)
使用ng-click链接标记并调用函数。在函数中将您的参数放在LocalStorage中。然后在app.run中使用$ rootScope。$ on(“$ stateChangeStart”)并检查localstorage是否有参数获取参数并使用参数调用$ state。
//in page controller:
var openNewTab = function () {
localStorage.newTab = JSON.stringify({
state: "yourState",
params: {
param1: "someparam1",
param2:"someparam2"
}
});
window.open(document.location.origin);
}
//angular app run config:
angularApp.run(function($state){
if(localStorage.newTab){
var newTab = JSON.parse(localStorage.newTab);
localStorage.removeItem("newTab");
$state.go(newTab.state, newTab.params);
event.preventDefault();
}
})
<a ng-click="openNewTab()" >open new tab</a>