Angularjs Uncaught Error: [$injector:modulerr] when migrating to V1.3
Angularjs Uncaught Error: [$injector:modulerr] when migrating to V1.3
我正在学习 Angular.js,但我无法弄清楚这个简单的代码有什么问题。看起来不错,但出现以下错误。
**Error**: Uncaught Error: [$injector:modulerr] http://errors.angularjs.org/1.3.14/$injector/modulerr?p0=app&p1=Error%3A%20…gleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.3.14%2Fangular.min.js%3A17%3A381)
在添加 ng-app=<strong>"app"</strong>
之前(我只是将其保留为 ng-app
)它给了我以下错误。这是为什么?
Error: [ng:areq] http://errors.angularjs.org/1.3.14/ng/areq?p0=Ctrl&p1=not%20a%20function%2C%20got%20undefined
at Error (native)
at https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js:6:417
at Sb (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js:19:510)
at tb (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js:20:78)
at $get (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js:75:331)
at https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js:57:65
at s (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js:7:408)
at A (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js:56:443)
at g (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js:51:299)
at g (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js:51:316)
<!doctype html>
<html ng-app="app">
<head>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script>
</head>
<body>
<div ng-controller="Ctrl">
<input ng-model="name">
<h1>{{name}}</h1>
<h2>{{age}}</h2>
</div>
<script>
var Ctrl = function($scope)
{
$scope.age = 24;
};
</script>
</body>
</html>
你必须定义你的控制器
var app = angular.module('app', []);
app.controller('Ctrl', ['$scope',function($scope) {
$scope.age = 24;
}]);
在 AngularJS 版本 1.3 全局控制器函数声明被禁用后
您需要先创建一个 AngularJS 模块,然后将所有组件附加到该特定模块。
代码
function Ctrl($scope) {
$scope.age = 24;
}
angular.module('app', [])
.controller('Ctrl', ['$scope', Ctrl]);
特别针对您的情况,AngularJS 1.3.14
存在一些问题(将其降级为 1.3.13
工作正常)。虽然我更希望您使用 angular 1.2.27 AngularJS 1.6.X,哪个版本更稳定且 [= 的最新版本43=].
更新:
您可以通过在 angular.config
中允许全局控制器声明来使当前代码进入工作状态。但这不是 运行 angular 申请的正确方法。
function Ctrl($scope) {
$scope.age = 24;
}
angular.module('app', [])
.config(['$controllerProvider',
function ($controllerProvider) {
$controllerProvider.allowGlobals();
}
]);
我自己也被困在这个问题上有一段时间了。按顺序检查以下内容:-
您 angular.js 脚本的路径是正确的(无论您是在 HTML 中从本地源还是作为外部资源调用它)。
接下来,一旦您的 angular.js 正确,请检查您的应用程序是否已初始化。
var app=angular.module('app',[])
//在你的app.js文件中
<body ng-app="app">
//在你的html
接下来向应用程序注册您的控制器并传递所有必要的注入
app.controller('myCtrl',function(){});
在你的html文件中调用你的javascript文件
<script src="app.js"></script>
确保 ng-app="app_name"
定义必须匹配
var app=angular.module(
'app_name'
,[])
<html ng-app="myApp">
<body>
<div ng-controller="Ctrl">
<input ng-model="name">
<h1>{{name}}</h1>
<h2>{{age}}</h2>
</div>
<script>
var app = angular.module('myApp',[]); // same to the above define appName
app.controller('Ctrl',function($scope){
$scope.age=24; // initialize age by injecting scope
});
</script>
</body>
<html>
有关详细信息,请访问 Here
- 检查 html 文件中 angularjs 的版本。
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.6/angular.min.js"></script>
- 在你的HTML文件中调用你的javascript文件
<script src="app.js"></script>
我正在学习 Angular.js,但我无法弄清楚这个简单的代码有什么问题。看起来不错,但出现以下错误。
**Error**: Uncaught Error: [$injector:modulerr] http://errors.angularjs.org/1.3.14/$injector/modulerr?p0=app&p1=Error%3A%20…gleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.3.14%2Fangular.min.js%3A17%3A381)
在添加 ng-app=<strong>"app"</strong>
之前(我只是将其保留为 ng-app
)它给了我以下错误。这是为什么?
Error: [ng:areq] http://errors.angularjs.org/1.3.14/ng/areq?p0=Ctrl&p1=not%20a%20function%2C%20got%20undefined
at Error (native)
at https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js:6:417
at Sb (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js:19:510)
at tb (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js:20:78)
at $get (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js:75:331)
at https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js:57:65
at s (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js:7:408)
at A (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js:56:443)
at g (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js:51:299)
at g (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js:51:316)
<!doctype html>
<html ng-app="app">
<head>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script>
</head>
<body>
<div ng-controller="Ctrl">
<input ng-model="name">
<h1>{{name}}</h1>
<h2>{{age}}</h2>
</div>
<script>
var Ctrl = function($scope)
{
$scope.age = 24;
};
</script>
</body>
</html>
你必须定义你的控制器
var app = angular.module('app', []);
app.controller('Ctrl', ['$scope',function($scope) {
$scope.age = 24;
}]);
在 AngularJS 版本 1.3 全局控制器函数声明被禁用后
您需要先创建一个 AngularJS 模块,然后将所有组件附加到该特定模块。
代码
function Ctrl($scope) {
$scope.age = 24;
}
angular.module('app', [])
.controller('Ctrl', ['$scope', Ctrl]);
特别针对您的情况,AngularJS 1.3.14
存在一些问题(将其降级为 1.3.13
工作正常)。虽然我更希望您使用 angular 1.2.27 AngularJS 1.6.X,哪个版本更稳定且 [= 的最新版本43=].
更新:
您可以通过在 angular.config
中允许全局控制器声明来使当前代码进入工作状态。但这不是 运行 angular 申请的正确方法。
function Ctrl($scope) {
$scope.age = 24;
}
angular.module('app', [])
.config(['$controllerProvider',
function ($controllerProvider) {
$controllerProvider.allowGlobals();
}
]);
我自己也被困在这个问题上有一段时间了。按顺序检查以下内容:-
您 angular.js 脚本的路径是正确的(无论您是在 HTML 中从本地源还是作为外部资源调用它)。
接下来,一旦您的 angular.js 正确,请检查您的应用程序是否已初始化。
var app=angular.module('app',[])
//在你的app.js文件中<body ng-app="app">
//在你的html接下来向应用程序注册您的控制器并传递所有必要的注入
app.controller('myCtrl',function(){});
在你的html文件中调用你的javascript文件
<script src="app.js"></script>
确保 ng-app="app_name"
定义必须匹配
var app=angular.module(
'app_name'
,[])
<html ng-app="myApp">
<body>
<div ng-controller="Ctrl">
<input ng-model="name">
<h1>{{name}}</h1>
<h2>{{age}}</h2>
</div>
<script>
var app = angular.module('myApp',[]); // same to the above define appName
app.controller('Ctrl',function($scope){
$scope.age=24; // initialize age by injecting scope
});
</script>
</body>
<html>
有关详细信息,请访问 Here
- 检查 html 文件中 angularjs 的版本。
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.6/angular.min.js"></script>
- 在你的HTML文件中调用你的javascript文件
<script src="app.js"></script>