问题描述
希望我有一个简单的问题。 我已经使用Ionic和AngularJS构建了一个小型应用程序。 有两种状态,其中一种是包含表单的标签。 提交后,表单标签将不再可用。 我试图在本地存储中编写一个布尔变量,它对我来说很好。 不幸的是,当我提交表单时,我仍然可以按ionic的后退按钮或android hardwarebutton返回表单并再次提交。 我通过ng-init调用了一个函数,该函数在加载之前切换状态,但这仅适用于刷新页面,而不适用于状态更改。
如何收听状态变化? 您有更好的解决方案吗?
1楼
Freezystem
12
2015-07-31 08:21:28
实际上,这非常容易,UI-router允许您访问3种不同的状态侦听器:
$rootScope.$on('$stateChangeStart',myFunc)
->状态更改时触发
$rootScope.$on('$stateChangeSuccess', myFunc)
->状态更改成功时触发
$rootScope.$on('$stateChangeError', myFunc)
->状态更改失败时触发
然后,可以通过将状态与promise关联来禁止使用状态的resolve属性访问一页。
如果承诺得到解决,则授予访问权限,否则拒绝访问。