我正在尝试在angularjs应用程序中添加多个选项卡。 单击任何菜单项,我在新选项卡中打开视图。
用户可以选择关闭任何现有标签,然后他可以再次点击菜单选项,再次将视图作为标签显示。
直到现在所有这一切都正常,但问题是当标签关闭时我无法清除之前的粘滞状态。当用户点击同一菜单时,新视图将以之前的状态加载。
在关闭标签操作上,我试图将状态清除为以下状态。
$stickyState.stateInactivated($state.$current)
$stickyState.reset('tabs.survey')
我对该标签的路由如下。
$stateProvider.state('tabs.survey', {
url: '/survey',
sticky: true,
views: {
'survey': {
templateUrl: 'partials/survey.html',
controller : 'surveyController'
}
}
});
答案 0 :(得分:0)
我应用了解决方法/黑客来解决此问题
我在路线中添加了一个新参数,如下所示。
$stateProvider.state('tabs.survey', {
url: '/survey/:ts',
sticky: true,
views: {
'survey': {
templateUrl: 'partials/survey.html',
controller: 'surveyController'
}
}
});
添加了模块运行配置,如下所示。
app.run(function ($state, $rootScope, $stateParams) {
$rootScope.$state = $state;
$rootScope.$stateParams = $stateParams;
})
最后在创建新标签项时,我尝试更改参数以刷新旧状态,如下所示。
$state.go('tabs.survey', { "ts": 1 });
$state.go('tabs.survey', { "ts": 0 });
这只是一种解决方法。对此可以有一些更好的解决方案,我现在还不确定。
欢迎所有建议。