Angular 监听路由变化

var app = angular.module('Mywind',['ui.router'])

//Angular 监听路由变化
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 == "index1") {
//获取参数之后可以调请求判断需要渲染什么页面,渲染不同的页面通过 $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) {

  })
}
app.controller('Myautumn',function($scope,$http,$filter){

  

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

}); 

 

转载于:https://www.cnblogs.com/wr1994/p/8337829.html

在前端开发中,监听`history`路由变化通常是在单页应用程序(SPA)中实现的,特别是使用现代框架如React、Vue或Angular时。以下是一个简单的例子,展示了如何在这些框架中监听路由变化: **React Router v6** (基于路径的API): ```jsx import { useLocation } from 'react-router-dom'; function App() { const location = useLocation(); useEffect(() => { console.log('Route changed:', location.pathname); // 在这里添加你想在路由改变时执行的任何代码 }, [location]); return ( <Router> {/* ...你的路由配置... */} </Router> ); } ``` **Vue Router**: ```js import { useRoute } from 'vue-router'; export default { setup() { const route = useRoute(); onMounted(() => { route.$on('update', (to) => { console.log('Route updated:', to.path); // 在这里添加你想在路由更新时执行的回调 }); }); return { route, }; }, } ``` **Angular Router**: ```typescript import { Router } from '@angular/router'; import { Component, OnInit } from '@angular/core'; @Component({ selector: 'app-root', template: '<router-outlet></router-outlet>', }) export class AppComponent implements OnInit { constructor(private router: Router) {} ngOnInit(): void { this.router.events.subscribe((event) => { if (event instanceof NavigationEnd) { console.log('Route changed:', event.urlAfterRedirects); // 在这里添加你想在路由变化后的回调 } }); } } ``` 记得在每个框架的文档中查找完整的API和示例,因为API可能会有所变化
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值