簡體   English   中英

錯誤:[$ injector:nomod]模塊不可用

[英]Error: [$injector:nomod] Module is not available

我正在嘗試上傳帶有進度條的文件,但是無論我做什么,都會不斷出現2個錯誤

1)模塊未定義,第二個模塊是[$ injector:nomod]模塊不可用。

http://jsfiddle.net/3m75wqt1/

這是我的控制器

PageController.js

var PageController = function ($scope, fileUpload ) {
angular.module('app', ['ngProgress'])
angular.module('app')
.controller('PageController', function ($scope) {
    //$scope.fileUpload = {};
});
PageController.$inject = ['$scope','ngProgress'];

};

我已經做了很多搜索,但是找不到錯誤。 任何幫助將不勝感激...在此先感謝

首先,不應在控制器內部調用模塊方法,因此:

var PageController = function ($scope, fileUpload) {
    angular.module('app', ['ngProgress'])
    angular.module('app')
        .controller('PageController', function ($scope) {//I will replace this with PageController 
            //$scope.fileUpload = {};
        });
    PageController.$inject = ['$scope', 'ngProgress'];
};

應該看起來像這樣:

var PageController = function ($scope, fileUpload) {
};
PageController.$inject = ['$scope', 'ngProgress'];
angular.module('app', ['ngProgress'])
angular.module('app').controller('PageController', PageController);

我在您的控制器方法中刪除了該函數,並將您定義的PageController放在了它的位置

第二件事是您不需要兩次調用module方法,第一個已經返回了模塊,因此最好的方法應如下所示:

var PageController = function ($scope, fileUpload) {
};
PageController.$inject = ['$scope', 'ngProgress'];
angular.module('app', ['ngProgress']).controller('PageController', PageController);

而且我個人更喜歡數組符號,所以我最喜歡的樣子是這樣,但這取決於您:

angular.module('app', [
    'ngProgress'//this is a module dependency (its also createt with angular.module)
]).controller('PageController', [
    '$scope',
    'fileUpload',//this is a dependency for the controller (probably a service)
    function ($scope, fileUpload) {
    }
]);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM