AngularJS监听路由的变化示例代码_AngularJS

话不多说,我们下面直接来看实现的示例代码

【一】Angular 路由状态发生改变时可以通过' $stateChangeStart '、' $stateChangeSuccess '、' $stateChangeError '监听,通过注入'$location'实现状态的管理

代码示例如下:

function run($ionicPlatform, $location, Service, $rootScope, $stateParams) {
  //路由监听事件
  $rootScope.$on('$stateChangeStart',
    function(event, toState, toParams, fromState, fromParams) {
     console.log(event);
     console.log(toState);
     console.log(toParams);
     console.log(fromState);
     console.log(fromParams);
     if (toState.name == "homePage") {
      //获取参数之后可以调请求判断需要渲染什么页面,渲染不同的页面通过 $location 实现
      if (toParams.id == 10) {
       //$location.path();//获取路由地址
       // $location.path('/validation').replace();
       // event.preventDefault()可以阻止模板解析
      }
     }
    })
   // stateChangeSuccess 当模板解析完成后触发
  $rootScope.$on('$stateChangeSuccess', function(event, toState, toParams, fromState, fromParams) { 

  }) 

  // $stateChangeError 当模板解析过程中发生错误时触发
  $rootScope.$on('$stateChangeError', function(event, toState, toParams, fromState, fromParams, error) { 

  })
 } 

【2】在页面渲染中 可通过' $viewContentLoading '和 ' $viewContentLoaded '监听页面渲染状态:渲染开始和渲染结束。

(在控制器中添加以下代码实现监听)

// $viewContentLoading- 当视图开始加载,DOM渲染完成之前触发,该事件将在$scope链上广播此事件。
scope.$watch('$viewContentLoading',function(event, viewConfig){
 alert('模板加载完成前');
});
//$viewContentLoaded- 当视图加载完成,DOM渲染完成之后触发,视图所在的$scope发出该事件。
$scope.$watch('$viewContentLoaded',function(event){
  alert('模板加载完成后');
}); 

总结

以上就是这篇文章的全部内容,希望能对大家的学习或者工作带来一定的帮助,如果有疑问大家可以留言交流。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索angular
, angularjs
, 路由变化
, 监听路由变化
监听路由
angularjs 监听值变化、angularjs监听url变化、angularjs 路由监听、angularjs 路由变化、angular监听路由变化,以便于您获取更多的相关知识。

时间: 2024-08-07 05:53:41

AngularJS监听路由的变化示例代码_AngularJS的相关文章

AngularJs Using $location详解及示例代码_AngularJS

一.What does it do? $location服务分析浏览器地址栏中的URL(基于window.location),让我们可以在应用中较为方便地使用URL里面的东东.在地址栏中更改URL,会响应到$location服务中,而在$location中修改URL,也会响应到地址栏中. $location服务: 暴露当前浏览器地址栏的URL,所以我们可以 1.注意和观察URL 2.改变URL 当用户做以下操作时,与浏览器一起同步URL: 1.改变地址栏 2.单击后退或者前进按钮(或者点击一个历

AngularJs html compiler详解及示例代码_AngularJS

原文再续,书接上回...依旧参考http://code.angularjs.org/1.0.2/docs/guide/compiler 一.总括 Angular的HTML compiler允许开发者自定义新的HTML语法.compiler允许我们对任意HTML元素或属性,甚至是新的HTML标签.属性(如<beautiful girl="cf"></beautiful >)附加行为.Angular将这些附加行为称为directives. HTML有很多专门格式化静

AngularJS实现树形结构(ztree)菜单示例代码_AngularJS

树形结构 树形结构有多种形式和实现方式,zTree可以说得上是一种比较简洁又美观的且实现起来也相对简单.zTree是一个依靠jQuery实现的多功能"树插件".它最大的优点是配置灵活,只要id与pid的值相同就可形成一个简单的父子结构.再加上免费开源,使用zTree的人越来越多. 效果图如下 首先你需要知道AngularJS的双向数据绑定是什么才可以更好的理解下面的代码,想了很久才想出用下面的代码来实现左侧菜单树形结构 要实现上面的功能你需要操作如下步骤: 在HTML标签内添加ng-a

AngularJS基础 ng-hide 指令用法及示例代码_AngularJS

AngularJS ng-hide 指令 AngularJS 实例 在复选框选中时隐藏一部分: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script src="http://apps.bdimg.com/libs/angular.js/1.4.6/angular.min.js"></script> </head> &

AngularJS 自定义指令详解及示例代码_AngularJS

自定义指令中使用AngularJS扩展HTML的功能.自定义指令使用的"指令"的功能定义.自定义指令只是替换了它被激活的元素.引导过程中AngularJS应用程序找到了匹配的元素,并做好使用自定义指令compile()方法一次活动再处理使用基于指令的范围自定义指令link()方法的元素. AngularJS提供支持,以下列元素的类型来创建自定义指令. Element directives - 指令遇到时激活一个匹配的元素. Attribute - - 指令遇到时激活一个匹配的属性. C

AngularJs Creating Services详解及示例代码_AngularJS

虽然angular提供许多有用的service,在一些特别的应用中,我们会发现编写自定义service是很有用的.如果我们想做这件事,我们首先要在module中注册一个service工厂方法,可以通过Module.factory api(http://docs.angularjs.org/api/angular.module)或者在module配置方法中直接通过$provide api(http://docs.angularjs.org/api/AUTO.$provide). 所有angular

AngularJS 依赖注入详解及示例代码_AngularJS

依赖注入是一个在组件中给出的替代了硬的组件内的编码它们的依赖关系的软件设计模式.这减轻一个组成部分,从定位的依赖,依赖配置.这有助于使组件可重用,维护和测试. AngularJS提供了一个至高无上的依赖注入机制.它提供了一个可注入彼此依赖下列核心组件. 值 工厂 服务 提供者 常值 值 值是简单的JavaScript对象,它是用来将值传递过程中的配置相位控制器. //define a module var mainApp = angular.module("mainApp", []);

Angularjs实现mvvm式的选项卡示例代码_AngularJS

在实现Angularjs实现mvvm式的选项卡之前,先搬出我们常用的jquery实现. 1.jquery实现简单粗暴的选项卡效果 var nav = $(".tabs");//tab切换 var box = $(".box");//容器 nav.on("click", function(){ //点击事件 var this_index=$(this).index(); $(this).addClass("active").si

AngularJs 指令详解及示例代码_AngularJS

对于指令,可以把它简单的理解成在特定DOM元素上运行的函数,指令可以扩展这个元素的功能. 首先来看个完整的参数示例再来详细的介绍各个参数的作用及用法: angular.module('myApp', []) .directive('myDirective', function() { return { restrict: String, priority: Number, terminal: Boolean, template: String or Template Function: func