angularjs – 更改$ionicHistory.backView()的stateParams之后返
发布时间:2020-12-17 07:10:28 所属栏目:安全 来源:网络整理
导读:我正在使用Ionic Framework开发一个 Android应用程序. 在那里,我有三个视图,view1,view2和view3. 导航将像view1 – view2 – VIEW3 从view3移回view2时,我需要更改view2的stateParam param1值来执行某些操作.下面的代码显示我在view3中单击后退按钮时更改了v
我正在使用Ionic Framework开发一个
Android应用程序.
在那里,我有三个视图,view1,view2和view3. 导航将像view1 – > view2 – > VIEW3 从view3移回view2时,我需要更改view2的stateParam param1值来执行某些操作.下面的代码显示我在view3中单击后退按钮时更改了view2的stateParam值 以下是覆盖Android设备backbutton动作的代码 $ionicPlatform.registerBackButtonAction(function() { if ($state.current.name == "view3") { $ionicHistory.backView().stateParams = {param1:true}; $ionicHistory.goBack(); // moves to view2 } else { $ionicHistory.goBack(); } },100); 回到view2后,如果我现在单击后退按钮,它将移至view3而不是view1.现在我只能通过单击后退按钮来查看view3和view2,而不是移动到view1. 如何使后退按钮从view2移动到view1甚至在更改view2的stateParam值后? 解决方法
我终于找到了解决这个问题的方法,不幸的是,这是一个黑客,所以它有点难看.
提示不仅要更新stateParams,还要更新stateId. 请看下面一个可重复使用的答案: var params = {param1:true}; var backView = $ionicHistory.backView(); var stateId = backView.stateName; for (var key in params) { if (params[key] && params[key] !== "") { stateId += "_" + key + "=" + params[key]; } } backView.stateParams = params; backView.stateId = stateId; $ionicHistory.goBack(); 在您的具体情况下,它可能只是: if ($state.current.name == "view3") { var backView = $ionicHistory.backView(); backView.stateParams = {param1:true}; backView.stateId = backView.stateName + "_param1=true"; $ionicHistory.goBack(); // moves to view2 } else { $ionicHistory.goBack(); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 在Vim中插入单个字符进行原子操作
- AngularJS Module类的方法
- 如何将服务变量传递到Angular Material对话框?
- scala – 错误:在Play 2.1.0中运行现有项目时无法检索sbt
- twitter-bootstrap – Bootstrap 3中响应式navbar的问题
- 语法 – scala将多个函数调用参数合并为一个元组 – 这可以
- Shell脚本与编程语言
- 输入adb shell 时 提示error: more than one device and em
- angular – MdDatepickerModule – 欧洲格式
- AngularJS select首项空白问题解决方案