我在script.js文件中有这段代码
var mainController = function($scope){
$scope.message = "Plunker";
};
这是我的HTML
<!DOCTYPE html>
<html ng-app>
<head>
<script data-require="angular.js@1.6.1" data-semver="1.6.1" src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.6.1/angular.js"></script>
<link rel="stylesheet" href="style.css" />
<script src="script.js"></script>
</head>
<body ng-controller="mainController">
<h1>Hello {{ message }}</h1>
</body>
</html>
我在开场的html标签中声明了ng-app
但我在我的控制台上发现mainController未注册的错误
答案 0 :(得分:5)
解释http://www.w3schools.com/angular/angular_modules.asp
<div ng-app="myApp" ng-controller="mainController">
{{ firstName + " " + lastName }}
</div>
<script>
var app = angular.module("myApp", []);
app.controller("mainController", function($scope) {
$scope.firstName = "John";
$scope.lastName = "Doe";
});
</script>
重要的一行是
app.controller("mainController", function($scope)
将您的控制器注入您的应用
答案 1 :(得分:4)
代码遵循一个过时的例子。
从1.2迁移到1.3
控制器 由于3f2232b5,$ controller将不再在窗口上查找控制器。查看控制器窗口的旧行为最初打算用于示例,演示和玩具应用程序。我们发现允许全局控制器功能鼓励不良做法,因此我们决定默认禁用此行为。
要迁移,请使用模块注册控制器,而不是将它们公开为全局:
在:
function MyController() { // ... }
后:
angular.module('myApp', []).controller('MyController', [function() { // ... }]);
答案 2 :(得分:1)
您需要在script.js文件中注册控制器,如下所示
var app = angular.module('myApp', []);
app.controller('mainController', function($scope) {
$scope.message= "msg";
});
答案 3 :(得分:1)
您需要在应用程序的主模块中注册控制器。
在你的app.js中试试这个
var myApp = angular.module('app', []);
myApp.controller('mainController', function($scope){
$scope.message = "Plunker";
});
并在你的HTML中
<!DOCTYPE html>
<html ng-app="app">
<head>
<script data-require="angular.js@1.6.1" data-semver="1.6.1" src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.6.1/angular.js"></script>
<link rel="stylesheet" href="style.css" />
<script src="script.js"></script>
</head>
<body ng-controller="mainController">
<h1>Hello {{ message }}</h1>
</body>
</html>
答案 4 :(得分:0)
如果您的代码正确无误,但仍然出现此错误,请使用检查窗口在浏览器的控制台(JS控制台)中查找显示的另一个JS错误。最可能是该错误早于此错误。
如果您解决了该JS错误,那么如果您的代码正确,它将自动得到解决。以我为例,我突然开始发现此错误并尝试解决它,但是没有任何效果,然后我尝试了一段时间,然后看到了该错误之上的另一个错误并尝试解决。这是一件容易解决的事情,一旦完成,此错误也将自行解决。