Angularjs 提供给routeProvider的调试路由

Angularjs 提供给routeProvider的调试路由,angularjs,angularjs-routing,Angularjs,Angularjs Routing,我是AngularJS新手,正在尝试调试一些路由,但我不知道如何显示/查看传递给routeprovider的路由 例如,如果我的当前路由设置如下 reportFormsApp.config(function ($routeProvider) { $routeProvider .when("/Reporting", { templateUrl: "ReportForm/rfTemplate.html", controller: "rfController" })

我是AngularJS新手,正在尝试调试一些路由,但我不知道如何显示/查看传递给routeprovider的路由

例如,如果我的当前路由设置如下

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.”

的计算方式显示路由,您可以侦听由发出的多个事件。这些活动包括:

  • $routeChangeStart
  • $routeChangeSuccess
  • $routeChangeError
  • 和,
    $routeUpdate
(我鼓励您阅读链接提供的文档,了解每种链接的描述。)

此时,您可以在一个控制器或指令的
$scope
上,或通过将
$rootScope
注入
angular.module().run()
函数或其他服务/工厂,侦听一个或所有这些事件

例如,作为所提供代码的附录:

reportFormsApp.config(函数($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”})
。否则({重定向到:“/Reporting”})
});
reportFormsApp.run([
“$rootScope”,
函数($rootScope){
//当路线试图改变时,看看发生了什么
$rootScope.$on(“$routeChangeStart”,函数(事件、下一个、当前){
//接下来是一个对象,它是我们开始要去的路线
//current是一个对象,它是我们当前所在的路线
var currentPath=current.originalPath;
var nextPath=next.originalPath;
console.log('开始离开%s转到%s',当前路径,下一个路径);
});
}
]);
您还可以访问其余的
$routeProvider
对象,如
current.templateUrl
next.controller

有关重定向到的注意事项: 使用
$route service
事件有一个对象异常,即存在重定向时。在这种情况下,
next.originalPath
将被取消定义,因为您将拥有的只是在
otheris()
中定义的
redirectTo
属性。您将永远看不到用户试图访问的路由

因此,您可以收听
$locationChangeStart
$locationChangeSuccess
事件:

reportFormsApp.run([
“$rootScope”,
函数($rootScope){
//当路线试图改变时,看看发生了什么
$rootScope.$on(“$locationChangeStart”,函数(事件、新URL、旧URL){
//newUrl和oldUrl都是字符串
console.log('开始离开%s转到%s',oldUrl,newUrl);
});
}
]);
如果使用HTML5模式,则
$locationChange*
事件将提供另外两个参数。这些是
newState
oldState

总之,收听
$route*
事件可能是调试您在
$routeProvider
中提供的对象和定义的最佳选择。但是,如果您需要查看正在尝试的所有url,则需要侦听
$locationChange*
事件


截至目前

谢谢斯蒂芬-这让我解决了我的问题。没问题,@RayBrack。很乐意帮忙。