Angular uiouter在新窗口或选项卡中使用statparams打开状态
Angular uiRouter open state in new window or tab with stateParams
我想做的是在新的选项卡或新窗口中跟随:
$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');`
我将失去参数。
最诚挚的问候,马塞尔。
你应该尝试这样做:
/* @ngInject */
function SomeCtrl ($state, $window) {
$window.open($state.href('stateName', {}, {absolute: true}), '_blank');
}
注意:如果使用ng-annotate(可在cli, gulp和grunt版本中使用),/* ngInject */
可以实现自动依赖注入注释
使用ng-click链接标签并调用函数。在函数中把你的参数放在LocalStorage中。然后在app.run中使用$rootScope.$on("$stateChangeStart")并检查localstorage是否有参数获取params并调用$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>
相关文章:
- 事件和状态
- 获取选择框的状态
- 相位器状态未捕获参考错误
- 如何更改reactjs中外部/独立组件的状态或属性
- 如何使用密码检测网络中的状态连接
- Ember.js-接口状态应该存储在哪里
- 混合 ui-sref 和 $state.go 在 Angular ui-router 中进行状态转换
- 在Angular 2中布线期间保持零部件处于活动状态
- 在mvc应用程序中,在回发时保留最初隐藏的文本框的隐藏或可见状态
- XMLHttpRequest未返回值-状态202
- 使用javascript反复检查用户在facebook上的登录状态
- 如何使bxslider仅在移动视图中处于活动状态
- 获取ASP.NET Ajax Timer状态
- React redux初始化功能,无论状态变化如何
- 无法在现有状态转换期间更新-未使用任何非法的setState()
- 悬停下拉菜单即使在鼠标移出后也保持活动状态
- 从组件状态的数组中删除元素
- iOS 中的按钮触摸状态
- 使用AngularJS中的UI路由器将状态重定向到默认子状态
- Angular uiouter在新窗口或选项卡中使用statparams打开状态