18

我在使用 AngularJS 的 ui-router 插件时遇到问题:

angular.module('myApp', []).
config(['$routeProvider', '$stateProvider', function($routeProvider, $stateProvider) {  
    $stateProvider
        .state('mandats', {
            url: '/domiciliations/mandats',
            templateUrl: 'domiciliations/views/mandats.html',
            controller: 'mandatsCtrl'
        });
}])

然后我在启动时收到此错误:

Unknown provider: $stateProvider

我按以下顺序包含了 javascript:

<script src="/Scripts/libs/angular/angular.js"></script>
<script src="/Scripts/libs/angular/angular-resource.js"></script>
<script src="/Scripts/libs/angular/angular-ui-states.js"></script>

可能是什么问题 ?

[编辑]

通过添加“ui.compat”作为 myApp 的依赖项,我摆脱了错误消息。我在 ui-router 的示例代码中看到了这一点,但在文档中却没有。这是怎么回事?

尽管如此,它仍然不起作用。我已将 ui-view 添加到应用程序索引文件中的 div 中。但是页面仍然是空白的。

4

3 回答 3

15

以下代码应该可以完成这项工作。至少在我的情况下,让我知道它是否有效。

angular.module('myApp', ['ui.compat']).
config(['$routeProvider', '$stateProvider', function($routeProvider, $stateProvider) {  
    $stateProvider
        .state('mandats', {
            url: '/domiciliations/mandats',
            templateUrl: 'domiciliations/views/mandats.html',
            controller: 'mandatsCtrl'
        });
}])

现在关于页面为空的问题。确保您在浏览器中拥有的 URL 与您所在州中定义的任何 URL 都不匹配。在您的浏览器中试试这个“#/domicilians/mandats”,看看视图是否被正确渲染。并不是说您的绝对网址应该与http://[HOST_NAME]/home.html#/domicilians/mandats 类似

于 2013-05-03T14:21:56.680 回答
15

您只需要包含 ui-router 模块作为依赖项。

喜欢以下

angular
    .module('myApp', ["ui.router"])
    .config(['$routeProvider', '$stateProvider', function($routeProvider, $stateProvider) { 
        ...
    }]);
于 2016-04-15T10:32:34.750 回答
3

包括angular-ui v0.0.2将解决该问题。

于 2013-08-27T08:10:47.897 回答