AngularJS听取状态变化事件

tri*_*lar 2 javascript android angularjs ionic

我有一个希望很简单的问题.我用Ionic和AngularJS构建了一个小应用程序.有两个状态,其中一个是包含表单的选项卡.提交时,表单选项卡不再可访问.我试图在本地存储中写一个布尔变量,它对我来说很好.不幸的是,当我提交表单时,我仍然可以按下离子或android硬件按钮的后退按钮返回到表单并再次提交.我通过ng-init调用了一个函数,它在加载之前切换状态,但这只适用于刷新页面而不是状态更改.

我怎样才能听取州的变化?你有更好的解决方案吗?

Fre*_*tem 13

实际上很简单,UI路由器可以让您访问3个不同的状态监听器:

$rootScope.$on('$stateChangeStart',myFunc) - >状态发生变化时发生火灾

$rootScope.$on('$stateChangeSuccess', myFunc) - >状态改变成功后触发

$rootScope.$on('$stateChangeError', myFunc) - >状态变化失败时触发

然后,您可以通过将状态的resolve属性与promise相关联来禁止访问一个页面.看文件

如果承诺得到解决,则授予访问权限,否则拒绝访问.

  • 注意:从 1.0 版开始,状态更改事件已被弃用、禁用并替换为 Transition Hooks - https://ui-router.github.io/guide/ng1/migrate-to-1_0#state-change-events (2认同)