【问题标题】:Uncaught Error: [$injector:modulerr] when using ui.router使用 ui.router 时未捕获的错误:[$injector:modulerr]
【发布时间】:2015-09-09 23:56:00
【问题描述】:

我正在尝试使用路由通过 url 使用 ui.router 传递参数,但是我被困在第一个障碍,因为我似乎无法让 ui-router注册所以我得到以下错误。

Uncaught Error: [$injector:modulerr]

我已将我的 ui.router js 文件包含在一个如下所示的配置文件中: './build/lib/ui-router/release/angular-ui-router.min.js'

然后我将 ui.router 包含在我的模块中:

topic.Module = angular.module('topic', ['ui.router']);

并尝试像这样创建一个示例状态:

topic.Module.config(['$stateProvider', function($stateProvider) {
    $stateProvider
        .state('app', {
            url: '/'
        });
}]);

有什么明显的我正在做或不做的事情会导致这不起作用或出现上述错误吗?我已经完全削减了状态的内容,以确认没有其他原因导致错误。

我尝试在主应用模块中包含 'ui-router' 而不是 'ui.router',结果也相同。

【问题讨论】:

  • 注入服务时应该是 ui.router 而不是 ui-router。检查拼写这些服务名称区分大小写。就我而言,我放了 $StateProvider 而不是 $stateProvider。

标签: javascript angularjs angular-ui-router


【解决方案1】:

对于遇到此问题的任何人,似乎$urlRouterProvider$stateProvider 都是必需的。

因此包括$urlRouterProvider 并添加以下内容以设置默认路由: $urlRouterProvider.otherwise('/');

所以上面的例子看起来像这样:

topic.Module.config(['$stateProvider', '$urlRouterProvider'  function($stateProvider, $urlRouterProvider) {
    $urlRouterProvider.otherwise('/');
    $stateProvider
        .state('app', {
            url: '/'
        });
}]);

【讨论】:

  • $urlRouteProvider 在配置时不是必须注入的。但是有一个路由的默认路由是很好的。
猜你喜欢
  • 2014-09-28
  • 2017-06-14
  • 2018-04-28
  • 2017-01-29
  • 2015-11-16
  • 2015-04-23
  • 2016-05-09
  • 2014-06-29
相关资源
最近更新 更多