我是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”评估的路线。
您可以收听发出的多个事件$route service
。这些事件是:
$routeChangeStart
$routeChangeSuccess
$routeChangeError
$routeUpdate
(我鼓励阅读链接提供的文档,以获取每个文件的描述。)
此时,您可以在一个$scope
控制器或指令之一上侦听一个或所有这些事件,或者通过注入$rootScope
到您的angular.module().run()
函数或另一个服务/工厂中。
例如,作为您提供的代码的附录:
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" })
});
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的注意事项: 使用$route service
事件有一个对象异常,那就是存在重定向时。在这种情况下,next.originalPath
将是undefined,因为您所拥有的只是redirectTo
您在中定义的属性otherwise()
。您将永远不会看到用户尝试访问的路由。
因此,您可以收听或事件:$location service's
$locationChangeStart``$locationChangeSuccess
reportFormsApp.run([
'$rootScope',
function($rootScope) {
// see what's going on when the route tries to change
$rootScope.$on('$locationChangeStart', function(event, newUrl, oldUrl) {
// both newUrl and oldUrl are strings
console.log('Starting to leave %s to go to %s', oldUrl, newUrl);
});
}
]);
如果使用HTML5Mode,则$locationChange*
事件将提供其他两个参数。这些是newState
和oldState
。
总之,侦听$route*
事件可能是调试中提供的对象和定义的最佳选择$routeProvider
。但是,如果您需要查看所有尝试的URL,$locationChange*
则将需要侦听事件。
截至 AngularJS 1.3.9版本
问题内容: 我正在尝试启动并运行AngularJS 1.2 RC2应用程序。目前,我一直在使用Angular Seed项目来尝试使我的应用程序启动并运行。不幸的是,Angular Seed项目使用的是v1.0.7。在Angular Seed项目中,我将依赖项更新为以下内容: 在app.js中,我具有以下内容: 当我运行此应用程序时,出现以下错误: 我已经阅读了其他一些回答,例如1)注入’ngrou
当我在浏览器上运行我的应用程序时,我的控制台中出现以下错误。 警告:失败的propType:为“Route”提供的prop“component”无效。 我目前正在使用以下开发需求的版本 这就是我的路由文件的外观。 这就是我的主js的样子 请问这个错误是从哪里来的?我该如何解决这个问题?
下面是我的app.js文件 下面是我的状态文件 我有一个模板,我想从那里导航到下一个状态 但是只要我点击这个锚标签,它就会把我导航回主页。(不去我打算去的州)。主要问题是URL(我猜)任何帮助都会很感激。
问题内容: 从AngularJS 1.0.7 升级到 1.2.0rc1 时收到此错误。 问题答案: ngRoute模块不再是核心文件的一部分。如果继续使用$ routeProvider,则现在需要在HTML中包括: API参考 您还必须为您的应用程序添加依赖项: 相反,如果您打算使用或类似方法,则只需 从模块中删除依赖项,然后将其替换为相关的选择提供者(例如)。然后,您将使用依赖项:
我正在使用SpringRunner运行JUnit mockito测试用例,下面是类,我试图编写测试用例,但得到空对象 //Junit测试用例 但是下面的代码即使在模拟这个之后仍然返回空值,你能帮助如何模拟这个吗? 注意:只有Mockito需要使用无powermockito
我使用了test dat provider和factory来处理示例数据,更像是从具有多个值的excel行中读取数据。因此,每个映射表示每行的列名和值,并将其添加到列表中,以获得从excel读取的所有值。现在我返回