AngularJS听取状态变化事件

时间:2015-07-31 08:12:06

标签: javascript android angularjs ionic

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

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

1 个答案:

答案 0 :(得分:11)

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

$rootScope.$on('$stateChangeStart',myFunc) - >国家正在改变时开火

$rootScope.$on('$stateChangeSuccess', myFunc) - >国家成功改变后开火

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

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

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