AngularJS控制器不工作,为什么?(简单的控制器示例)
AngularJS controller does not work, why? (simple controller example)
>我刚刚看了一段介绍AngularJS的视频,并使用了以下示例
该网页:
<!DOCTYPE html>
<html ng-app>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body ng-controller="MainContrl">
<h2>{{message}}</h2>
<script src="bower_components/angular/angular.min.js"></script>
<script src="js/test.js"></script>
</body>
</html>
js:
var MainContrl = function($scope){
$scope.message = "Hello friend";
};
在示例中,我看到这种结构有效,但是当我测试时它不起作用。控制台给我这个错误:
Error: [ng:areq] http://errors.angularjs.org/1.3.15/ng/areq?p0=MainContrl&p1=not%20a%20function%2C%20got%20undefined
控制器可以用这种方式吗?还是不好的做法
Plunker 中的示例:代码示例
我认为
这是一种不好的做法
您最好使用:
var myApp = angular.module('myApp', []);
myApp.controller('MainContrl', ['$scope', function ($scope) {
// any code here
]);
并在 HTML 中使用它:
<html ng-app="myApp">
<body ng-controller="MainContrl">
// any code here
</body>
</html>
您可能需要先定义您的角度应用程序:
var myApp = angular.module('myApp', []);
myApp.controller('MainContrl', function ($scope) {
$scope.message = "Hello friend";
});
这是Plunkr上的一个工作示例
我认为你必须有一个主应用程序。
在 myapp 中.js
var yourApp = angular.module('myApp',[]);
在主控制器中.js(它不应该被称为测试.js(
yourApp.controller('MainController',['$scope',function($scope){
$scope.message = "Hello world";
}]);
在您的索引中.html
<html ng-app="myApp">
<body ng-controller="MainController">
{{message}}
</body>'
<script src="bower_components/angular/angular.min.js"></script>
<script src="js/myapp.js"></script>
<script src="js/mainController.js"></script>
</html>
将脚本.js更改为
var app=angular.module('myapp',[]);
app.controller('MainContrl', ['$scope', function($scope){
$scope.message = "Hello friend";
}]);
并在HTML页面中将ng-app放在正文标签中,并从HTML中删除ng-app
<body ng-app="myapp" ng-controller="MainContrl">
首先在 html 中声明你的应用:
<html ng-app="myApp">
其次,在 js 中定义您的应用程序:
var app = angular.module('myApp', []);
然后在任何js文件中定义任何控制器(最佳实践是每个控制器都有自己的文件(:
var MainContrl = function($scope){
$scope.message = "Hello friend";
};
然后在 html 中声明控制器和变量:
<body ng-controller="MainContrl">
<h2>{{message}}</h2>
</body>
不要忘记将控制器与应用绑定:
app.controller('MainContrl',MainContrl);
我也可以看到你正在使用bower,所以我建议你阅读以下内容:http://www.sitepoint.com/kickstart-your-angularjs-development-with-yeoman-grunt-and-bower/
相关文章:
- AngularJS控制器不工作,为什么?(简单的控制器示例)
- 简单的AngularJS控制器不起作用
- AngularJS $http.post ASP.NET 具有简单类型参数的 Web API 控制器
- Laravel 5如何获得控制器显示简单的消息框或警报
- AngularJS简单控制器不起作用
- 如何将一个简单的Javascript数组绑定到MVC3控制器操作方法
- 无法将简单控制器访问为webService
- 无法获取简单的Angular控制器来显示值
- AngularJS简单控制器不工作
- 不能从rest控制器打印简单的值
- AngularJSTypeScript简单控制器连接
- 简单的前端控制器导致CSS和javascript在php中被破坏
- 在asp.net mvc中对控制器进行简单Ajax调用
- 在这个简单的AngularJs页面中,控制器在哪里?
- 无法找出这个简单的Angular控制器的问题所在
- 指令参数嵌套控制器简单示例
- Ember.js中简单的console.log控制器动作方法
- 可以从Angular JS控制器方法中调用简单的JS方法吗?
- 简单的动态指令(带有动态控制器和作用域)
- angular.js-处理控制器内部点击的最简单方法