angularjs模块没有为我加载

时间:2017-01-26 20:18:44

标签: angularjs angular-ui-router

我一直试图摆脱以下错误:

  

错误:$ injector:modulerr模块错误无法实例化模块   ptoApp由于:错误:[$ injector:unpr]

这是我的app.js代码:

angular.module('ptoApp', ['ui.router','ngResource'])
    .config(function($stateProvider, $urlRouterProvider) {
    $stateProvider

    // route for the home page
    .state('app', {
        url:'dist',
        views: {
            'header': {
                templateUrl : 'views/header.html'
            }
        }
    });
    $urlRouterProvider.otherwise('/');
});

这是我的html正文:

<body>
        <div id="container">
            <div class="header" ui-view="header"></div>
            <div class="info" ui-view="info"></div>
            <div class="body" ui-view="body"></div>
            <div class="secondBody" ui-view="secondBody"></div>
        </div>
        <!-- build:js scripts/main.js -->
        <script src="../bower_components/jquery/dist/jquery.min.js"></script>
        <script src="../bower_components/angular/angular.min.js"></script>
    <script src="../bower_components/angular-ui-router/release/angular-ui-router.min.js"></script>
    <script src="../bower_components/angular-ui/build/angular-ui.js"></script>
    <script src="../bower_components/angular-resource/angular-resource.min.js"></script>
        <script src="../bower_components/bootstrap/dist/js/bootstrap.min.js"></script>
        <script src="js/app.min.js"></script>
        <!-- endbuild -->
    </body>

我一直收到以下错误,但我的所有js文件都是bower,似乎正在加载。我不确定我是否遗漏了我应该加载的东西。我也在使用浏览器同步,我不确定是否还会抛出一些东西。所有js文件似乎都加载到index.html文件中。

1 个答案:

答案 0 :(得分:1)

您缩小了app.min.js,但原始app.js 不是缩小安全。

您的.config行注入依赖项,但没有静态方法来查找这些依赖项。在缩小时,.config(function($stateProvider, $urlRouterProvider) {将变为类似于.config(function(e, f) {的内容,并且依赖项的原始标识将丢失。

根据angular documentation

,有两种方法可以解决此问题

1)提供要引用的依赖项的字符串名称的内联数组。

.config(['$stateProvider', '$urlRouterProvider', 
        function($stateProvider, $urlRouterProvider) {...}])

2)使用$inject属性。

var configFunction = function($stateProvider, $urlRouterProvider){...};
configFunction.$inject = ['$stateProvider','$urlRouterProvider'];

angular.module('ptoApp', ['ui.router','ngResource'])
.config(configFunction);

使用哪种选择主要取决于偏好和编码风格;在大多数示例中,内联方法更常用。