Angularjs抛出TypeError:无法读取undefined的属性'indexOf'

时间:2014-06-07 01:17:04

标签: angularjs

enter image description here

我试图调试上面的代码,我觉得这非常有用>。<

我甚至无法找到我的代码中的错误,因为Angularjs对我来说还很新,所以我真的不知道从哪里开始。

我试图本地化Angularjs应用。我知道这是为了获得帮助而缺少很多上下文,但是我试图看看我应该提供哪些信息来帮助调试。

我已经浏览了 angularjs 文件中的任何indexOf,我可以看到很少的内容是undefined,但我不知道这是否有用

所以我在这里追查了这个问题,这是我认为的问题所在,但仍然没有弄明白为什么......

config(['$routeProvider', '$locationProvider',
  function ($routeProvider, $locationProvider) {
    $routeProvider.when('/:locale?/:username/badges', {
      templateUrl: '_partials/badges.html',
      controller: 'badges'
    })
    .when('/:username/badges', {
      templateUrl: '_partials/badges.html',
      controller: 'badges'
    })
    .when('/:username/teaching-resources', {
      templateUrl: '_partials/teaching-resources.html',
      controller: 'teachingResources'
    })
    .when('/:username/makes', {
      templateUrl: '_partials/makes.html',
      controller: 'makes'
    })
    .when('/:username/likes', {
      templateUrl: '_partials/likes.html',
      controller: 'likes'
    })
    .when('/:username/events', {
      templateUrl: '_partials/events.html',
      controller: 'events'
    })
    .when('/:username', {
      templateUrl: '_partials/badges.html',
      controller: 'badges'
    });

    $routeProvider.otherwise({
      redirectTo: '/error/404'
    });

我访问默认页面的网址是:

这将失败并抛出错误。

http://localhost:1969/en-US/user/someUserName

这样可以正常使用

http://localhost:1969/user/someUserName

更新

我想通了!这就是问题所在:

  $locationProvider.html5Mode(true);

但为什么!?

1 个答案:

答案 0 :(得分:0)

我有同样的错误。要使用html5Mode,您需要确保将<base href="" />标记设置为标题中的正确网址。有关详细信息,请查看$location service docs