运行以下demo,报错:
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0" />
<script type="text/javascript" src="js/angular.min.1.3.6.js"></script>
<!--<script type="text/javascript" src="js/angular.min-1.6.x.js"></script>-->
</head>
<!-- 重点看这里,问题在这 这里ng-controller="customersCtrl" 如果在script中没有去定义的话,就抛异常了,如果此controller确实没有用到,就把这里去掉-->
<body ng-app='myapp1' ng-controller="customersCtrl">
<cus></cus>
</body>
<script type="text/javascript">
var app = angular.module('myapp1', []);
/*
<!-- 重点看这里,问题在这里 如果在html中有去定义的话ng-controller="customersCtrl",此处的脚步里又没有定义controller,就抛异常了,如果controller确实没有用到,html和script里面就去掉-->
app.controller('customersCtrl',function($scope){
console.log("控制器");
});*/
app.directive("cus",function(){
return {
restrict:'E',//'E':element元素 调用时:<cus></cus>
//'A':attribute属性 调用时<div cus></div>
//'C':class类 调用时<div class='cus'></div>
replace:true,//默认false,替换掉自定义的directive的名称
template:'<div>Hello world</div>',
link:function(){
alert('显示在这里呢!');
console.log('显示在这里呢!');
}
}
});
</script>
</html>
这里是引入angular.min.1.3.6.js,1.3的版本,抛angular.min.1.3.6.js:102Error:
[ng:areq] ,经过查找资料,发现提到是版本的问题,换一个版本就没问题了,然后我换了一个angular.min-1.6.x.js,1.6版本的angularJS,可以依然报错的,显然不是版本的问题,只是错误的名称换了一下angular.min-1.6.x.js:122
Error: [$controller:ctrlreg]这时候发现错误中有controller这个关键字,难道是我的控制器写的有问题吗?看了一下果然是这样。我这个demo里面其实没有用到控制器,但实际上却在html里面写了控制器,并且在