Angular Controller Error: $injector:modulerr Module Error
Angular Controller Error: $injector:modulerr Module Error
我想丑化我的 AngularJS 代码。我遵循了互联网上的所有教程,现在有了以下代码,但在丑化后我仍然遇到错误:
var app = angular.module('myapp', ['ngMaterial', 'pascalprecht.translate', 'ngSanitize', 'material.components.expansionPanels', 'ngFileSaver', 'ngMessages', 'ngFileUpload', 'ngStorage']
TestController.$inject = ['$scope', '$translate', '$timeout','$mdSidenav', '$log', '$sessionStorage'];
angular.module('myapp').controller('TestController', TestController);
function TestController ($scope, $translate, $timeout, $mdSidenav, $log, $sessionStorage) {}
编辑:
我发现了问题。问题是我用以下配置模块:
app.config(function ($locationProvider) {
$locationProvider.html5Mode(true);
});
而不是:
app.config(['$locationProvider', function ($locationProvider) {
$locationProvider.html5Mode(true);
}]);
app.directive('onReadFile', function ($parse) {
return {
restrict: 'A',
scope: false,
link: function(scope, element, attrs) {
var fn = $parse(attrs.onReadFile);
element.on('change', function(onChangeEvent) {
var reader = new FileReader();
reader.onload = function(onLoadEvent) {
scope.$apply(function() {
fn(scope, {$fileContent:onLoadEvent.target.result});
});
};
reader.readAsText((onChangeEvent.srcElement || onChangeEvent.target).files[0]);
});
}
};
});
可能与 this question 重复。
尝试这样使用它:
angular.module('myapp').controller('TestController', ['$scope', '$translate', '$timeout','$mdSidenav', '$log', '$sessionStorage', function checkInCtrl ($scope, $translate, $timeout, $mdSidenav, $log, $sessionStorage){}]);
在尝试丑化代码之前,请始终尝试确保您的应用 运行 正确。
与控制器一样,在设置指令时使用与使用 $inject 声明依赖项相同的方法。
见下文
app.directive('onReadFile',onReadFile);
onReadFile.$inject = ['$parse'];
function onReadFile($parse){
var directive = {
restrict:'A',
scope: false,
link: link
}
return directive;
//////////
function link(scope, element, attrs){
var fn = $parse(attrs.onReadFile);
element.on('change', function(onChangeEvent) {
var reader = new FileReader();
reader.onload = function(onLoadEvent) {
scope.$apply(function() {
fn(scope, {$fileContent:onLoadEvent.target.result});
});
};
reader.readAsText((onChangeEvent.srcElement || onChangeEvent.target).files[0]);
});
}// end link
}// onReadFile
我想丑化我的 AngularJS 代码。我遵循了互联网上的所有教程,现在有了以下代码,但在丑化后我仍然遇到错误:
var app = angular.module('myapp', ['ngMaterial', 'pascalprecht.translate', 'ngSanitize', 'material.components.expansionPanels', 'ngFileSaver', 'ngMessages', 'ngFileUpload', 'ngStorage']
TestController.$inject = ['$scope', '$translate', '$timeout','$mdSidenav', '$log', '$sessionStorage'];
angular.module('myapp').controller('TestController', TestController);
function TestController ($scope, $translate, $timeout, $mdSidenav, $log, $sessionStorage) {}
编辑: 我发现了问题。问题是我用以下配置模块:
app.config(function ($locationProvider) {
$locationProvider.html5Mode(true);
});
而不是:
app.config(['$locationProvider', function ($locationProvider) {
$locationProvider.html5Mode(true);
}]);
app.directive('onReadFile', function ($parse) {
return {
restrict: 'A',
scope: false,
link: function(scope, element, attrs) {
var fn = $parse(attrs.onReadFile);
element.on('change', function(onChangeEvent) {
var reader = new FileReader();
reader.onload = function(onLoadEvent) {
scope.$apply(function() {
fn(scope, {$fileContent:onLoadEvent.target.result});
});
};
reader.readAsText((onChangeEvent.srcElement || onChangeEvent.target).files[0]);
});
}
};
});
可能与 this question 重复。
尝试这样使用它:
angular.module('myapp').controller('TestController', ['$scope', '$translate', '$timeout','$mdSidenav', '$log', '$sessionStorage', function checkInCtrl ($scope, $translate, $timeout, $mdSidenav, $log, $sessionStorage){}]);
在尝试丑化代码之前,请始终尝试确保您的应用 运行 正确。
与控制器一样,在设置指令时使用与使用 $inject 声明依赖项相同的方法。
见下文
app.directive('onReadFile',onReadFile);
onReadFile.$inject = ['$parse'];
function onReadFile($parse){
var directive = {
restrict:'A',
scope: false,
link: link
}
return directive;
//////////
function link(scope, element, attrs){
var fn = $parse(attrs.onReadFile);
element.on('change', function(onChangeEvent) {
var reader = new FileReader();
reader.onload = function(onLoadEvent) {
scope.$apply(function() {
fn(scope, {$fileContent:onLoadEvent.target.result});
});
};
reader.readAsText((onChangeEvent.srcElement || onChangeEvent.target).files[0]);
});
}// end link
}// onReadFile