【问题标题】:Debug angular routes调试角度路线
【发布时间】:2024-01-16 16:20:02
【问题描述】:

我的应用中有这段代码:

angular.module('App',['ngRoute', 'ngResource']).config ($routeProvider)->
    $routeProvider.when('/app',
        templateUrl: 'app.html'
        controller: 'appController'
    )

.controller 'appController', ($scope)->
    console.log 'app controller called called'
    $scope.message = 'this is my app'

但是,当我访问 /app 时,什么也没有发生。我没有收到app controller called 消息。我在控制台中没有收到任何错误消息。什么都没有。如果我没有得到任何信息,我真的不知道如何调试这个问题。

有没有办法让 Angular 更加冗长,从而给我错误和警告?

【问题讨论】:

  • 可以在 plnkr 或小提琴中发布您的代码吗?
  • @Karthik 我听到你的声音,但我可以让这个工作在一个小提琴中没问题。在我的 rails 后端使用 Angular 时,就会出现这个奇怪的问题。
  • 你能解决这个问题吗?

标签: angularjs coffeescript


【解决方案1】:

尝试访问/#/app 或设置$locationProvider.html5Mode(true)。 html5Mode 默认设置为 false 并且在路由前需要一个 # 符号。

编辑

要调试路由,您可以使用 Chrome 的工具(Ctrl+Shift+I -> Sources)并在 angular-resource.js 中设置断点,但我认为这不是一个好主意。 相反,您可以添加:

$routeProvider.otherwise({
    redirectTo: "/somewhere"
});

如果您被重定向,则不会调用正确的路由,因此不会执行控制器,因此您无需调试。您应该检查 htmlMode 是否设置为 false。 如果您没有被重定向,那么您应该检查文件是否正确加载以及应用程序是否在您的 html 文件中正确配置。

【讨论】:

  • 回答不是很有建设性,还是没有办法调试路由?
  • 这个答案帮助我完美,我只是在浪费时间忘记 # 在我的测试路线!谢谢。
  • 我同意@e10,这个答案对调试特定路线没有多大帮助。我刚刚创建了一个新的,但不知道如何点击它。