AngularJS监听状态改变事件
AngularJS listen to state change event
我有一个很简单的问题。我用Ionic和AngularJS构建了一个小应用程序。有两个状态,其中一个是包含表单的选项卡。提交后,表单选项卡应该不再是可访问的。我试过在本地存储中写一个布尔变量,它对我来说很好。不幸的是,当我提交表单时,我仍然可以按ionic或android硬件按钮的返回按钮回到表单并再次提交。我通过ng-init调用了一个函数,在加载之前切换状态,但这只适用于刷新页面,而不是在状态改变时。
如何收听状态变化?你有更好的解决办法吗?
这其实很简单,UI-router允许你访问3种不同的状态监听器:
$rootScope.$on('$stateChangeStart',myFunc)
->在状态改变时触发
$rootScope.$on('$stateChangeSuccess', myFunc)
->当状态成功改变时触发
$rootScope.$on('$stateChangeError', myFunc)
->状态改变失败触发
然后你可以通过将你的状态的resolve属性关联到一个承诺来禁止访问一个页面。见doc
如果承诺被解析,则授予访问权限,否则拒绝访问
相关文章:
- 当一个单元格被编辑时,是否有一个事件触发,但值没有'不要改变
- 纯JavaScript中的Onclick滑块 - 事件不会改变CSS值
- 如何正确地改变输入表单的值以引起“注意”;改变“;事件
- 改变布局的Javascript/jQuery focusout事件导致点击事件不触发
- 当下拉选择通过模型改变时,如何触发jquery事件
- 使用点击事件来改变“;焦点”;
- 触发标准“;改变“;表单对象上的事件-由其上的任何侦听器拾取
- Marionette ItemView不发射“;改变“;事件
- 为什么jquery"改变“;事件在我的示例中不起作用
- "keydown”;以及“;改变“;事件不适用于jquery数据表
- 使用jQueryUI手风琴并在事件改变为在新的“;窗格”;
- JavaScript:用onclick事件改变webgl的纹理
- Knockout js valueupdate 'afterkeydown'事件改变不起作用
- Jquery事件改变内联背景颜色的图像
- 使用Jquery悬停事件改变css
- 使用Kefir用多个事件改变属性的惯用方法
- 三个下拉事件改变不工作
- 使用拖放事件改变形状
- 使用Onload事件改变HTML上的iframe事件
- 通过javascript点击事件改变wordpress主题