angularjs – 提供给routeProvider的调试路由
我是AngularJS的新手,我试图调试一些路由,但是我不知道如何显示/查看传递给路由器的路由。
例如,如果我当前的路由设置如下; reportFormsApp.config(function ($routeProvider) { $routeProvider .when("/Reporting",{ templateUrl: "ReportForm/rfTemplate.html",controller: "rfController" }) .when("/Dashboard",{ templateUrl: "DashboardForm/dfTemplate.html",controller: "dfController" }) .when("/Analysis",{ templateUrl: "AnalysisForm/afTemplate.html",controller: "afController" }) .otherwise({ redirectTo: "/Reporting" }) }); 调试时我想打破代码,在控制台日志中输入类似的东西; $routeProvider.path 显示路线,因为它将由“.when”评估。
您可以聆听
$route service 发射的多个事件。这些事件是:
> $ routeChangeStart (我鼓励阅读链接提供的文档,了解每个文档的描述。) 此时,您可以在一个控制器或指令的$范围内监听这些事件中的一个或所有事件,或者通过将$ rootScope注入到您的angular.module()。run()函数或其他服务/工厂中。 例如,作为您提供的代码的附录: reportFormsApp.config(function ($routeProvider) { $routeProvider .when("/Reporting",controller: "rfController" }) .when("/Dashboard",controller: "dfController" }) .when("/Analysis",controller: "afController" }) .otherwise({ redirectTo: "/Reporting" }) }); reportFormsApp.run([ '$rootScope',function($rootScope) { // see what's going on when the route tries to change $rootScope.$on('$routeChangeStart',function(event,next,current) { // next is an object that is the route that we are starting to go to // current is an object that is the route where we are currently var currentPath = current.originalPath; var nextPath = next.originalPath; console.log('Starting to leave %s to go to %s',currentPath,nextPath); }); } ]); 您还可以访问$ routeProvider对象的其余部分,如current.templateUrl或next.controller。 关于redirectTo的注意事项: 所以,你可以听 reportFormsApp.run([ '$rootScope',function($rootScope) { // see what's going on when the route tries to change $rootScope.$on('$locationChangeStart',newUrl,oldUrl) { // both newUrl and oldUrl are strings console.log('Starting to leave %s to go to %s',oldUrl,newUrl); }); } ]); 如果您使用HTML5Mode,那么$ locationChange *事件将提供另外两个参数。那些是newState和oldState。 总而言之,在$ routeProvider中调用$ route *事件可能是您调试对象和定义的最佳选择。但是,如果您需要查看所有尝试的URL,那么$ locationChange *事件将需要被收听。 当前截至AngularJS 1.3.9 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 如何使用角度2中的正确更改跟踪将服务属性绑定到组件属性
- Scala:有一种通用的方法来修剪案例类的所有String字段吗?
- scala – 在Neo4j中创建多线程节点
- elasticsearch – Docker-compose链接vs external_links
- webService总结(四)——使用axis2发布和调用webService
- bootstrap + angularjs + springmvc + mybatis框架之图片上
- 设计模式之代理模式
- scala – 如何在Akka-http 2.4.1中包含application / x-www
- 为什么这个bash脚本不会退出?
- angular – Ionic2:如何在每个子视图中使用不同的离子菜单