话不多说,我们下面直接来看实现的示例代码
【一】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('模板加载完成后'); });
总结
以上就是这篇文章的全部内容,希望能对大家的学习或者工作带来一定的帮助,如果有疑问大家可以留言交流。
如对本文有疑问, 点击进行留言回复!!
解决三元运算符 报错“SyntaxError: can''t assign to conditional expression”
解决angular 使用原生拖拽页面卡顿及表单控件输入延迟问题
使用 Angular RouteReuseStrategy 缓存(路由)组件的实例代码
分享Angular http interceptors 拦截器使用(推荐)
网友评论