AngularJS基础学习笔记之控制器


Posted in Javascript onMay 10, 2015

AngularJS控制器用来控制AngularJS applications的数据。

AngularJS控制器就是普通的JavaScript对象。

AngularJS控制器

AngularJS applications通过控制器进行控制。

ng-controller指令定义了一个application的控制器。

一个控制器就是一个JavaScript对象,它可以通过标准的JavaScript对象构造函数来创建。

<div ng-app="myApp" ng-controller="myCtrl">

First Name: <input type="text" ng-model="firstName"><br>
Last Name: <input type="text" ng-model="lastName"><br>
<br>
Full Name: {{firstName + " " + lastName}}

</div>

<script>
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
  $scope.firstName = "John";
  $scope.lastName = "Doe";
});
</script>

代码解释:

AngularJS application通过ng-app="myApp"来定义。该application的有效作用域处于ng-app所在的<div>中。

ng-controller="myCtrl"属性即一个AngularJS指令,它定义了一个控制器。

myCtrl函数是一个普通的JavaScript函数。

AngularJS使用$scope对象来调用控制器。

在AngularJS中,$scope是一个application对象(即application变量和函数的所有者)。

控制器包含两个属性(或者叫变量):firstName和lastName。它们被附加到$scope对象上。

ng-model指令将input标签的值绑定到控制器的属性上(firstName和lastName)。

控制器的方法

上面的例子展示了控制器对象包含两个属性:lastName和firstName。

控制器也可以包含方法(将函数赋值给变量):

<div ng-app="myApp" ng-controller="personCtrl">

First Name: <input type="text" ng-model="firstName"><br>
Last Name: <input type="text" ng-model="lastName"><br>
<br>
Full Name: {{fullName()}}

</div>

<script>
var app = angular.module('myApp', []);
app.controller('personCtrl', function($scope) {
  $scope.firstName = "John";
  $scope.lastName = "Doe";
  $scope.fullName = function() {
    return $scope.firstName + " " + $scope.lastName;
  }
});
</script>

将控制器放在外部文件中

在大型应用中,常常会将控制器代码写在外部文件中。

将<script>标签中的代码拷贝到personController.js外部文件中:

<div ng-app="myApp" ng-controller="personCtrl">

First Name: <input type="text" ng-model="firstName"><br>
Last Name: <input type="text" ng-model="lastName"><br>
<br>
Full Name: {{firstName + " " + lastName}}

</div>

<script src="personController.js"></script>

另一个例子

创建一个新的控制器文件并命名为namesController.js:

angular.module('myApp', []).controller('namesCtrl', function($scope) {
  $scope.names = [
    {name:'Jani',country:'Norway'},
    {name:'Hege',country:'Sweden'},
    {name:'Kai',country:'Denmark'}
  ];
});

然后再application中使用这个控制器文件:

<div ng-app="myApp" ng-controller="namesCtrl">

<ul>
 <li ng-repeat="x in names">
  {{ x.name + ', ' + x.country }}
 </li>
</ul>

</div>

<script src="namesController.js"></script>

以上所述就是本文的全部内容了,希望大家能够喜欢。

Javascript 相关文章推荐
js宝典学习笔记(上)
Jan 10 Javascript
Jquery中显示隐藏的实现代码分析
Jul 26 Javascript
新浪微博字数统计 textarea字数统计实现代码
Aug 28 Javascript
再谈javascript面向对象编程
Mar 18 Javascript
目前流行的JavaScript库的介绍及对比
Sep 29 Javascript
jQuery判断checkbox(复选框)是否被选中以及全选、反选实现代码
Feb 21 Javascript
JS循环遍历JSON数据的方法
Jul 08 Javascript
jQuery操作JSON的CRUD用法实例
Feb 25 Javascript
bootstrap-wysiwyg结合ajax实现图片上传实时刷新功能
May 27 Javascript
JavaScript和jquery获取父级元素、子级元素、兄弟元素的方法
Jun 05 Javascript
jQuery中Find选择器用法示例
Sep 21 Javascript
在layui中对table中的数据进行判断(0、1)转换为提示信息的方法
Sep 28 Javascript
AngularJS基础学习笔记之指令
May 10 #Javascript
AngularJS基础学习笔记之表达式
May 10 #Javascript
AngularJS基础学习笔记之简单介绍
May 10 #Javascript
JS实现仿QQ聊天窗口抖动特效
May 10 #Javascript
javascript为按钮注册回车事件(设置默认按钮)的方法
May 09 #Javascript
深入浅出分析javaScript中this用法
May 09 #Javascript
深入浅出理解javaScript原型链
May 09 #Javascript
You might like
php中将字符串转为HTML的实体引用的一个类
2013/02/03 PHP
PHP生成唯一订单号的方法汇总
2015/04/16 PHP
Laravel框架中队列和工作(Queues、Jobs)操作实例详解
2020/04/06 PHP
jQuery 版本的文本输入框检查器Input Check
2009/07/09 Javascript
Javascript读取cookie函数代码
2010/10/16 Javascript
使用jQuery实现返回顶部
2015/01/26 Javascript
jquery插件锦集【推荐】
2016/12/16 Javascript
jQuery滚动插件scrollable.js用法分析
2017/05/25 jQuery
ztree简介_动力节点Java学院整理
2017/07/19 Javascript
vuejs实现递归树型菜单组件
2018/01/13 Javascript
360doc网站不登录就无法复制内容的解决方法
2018/01/27 Javascript
微信小程序scroll-view组件实现滚动动画
2018/01/31 Javascript
JS中实现一个下载进度条及播放进度条的代码
2019/06/10 Javascript
简述ES6新增关键字let与var的区别
2019/08/23 Javascript
python计算两个地址之间的距离方法
2018/06/09 Python
基于python代码实现简易滤除数字的方法
2018/07/17 Python
python中update的基本使用方法详解
2019/07/17 Python
python的re模块使用方法详解
2019/07/26 Python
django将数组传递给前台模板的方法
2019/08/06 Python
Python3 把一个列表按指定数目分成多个列表的方式
2019/12/25 Python
pytorch之inception_v3的实现案例
2020/01/06 Python
在django项目中导出数据到excel文件并实现下载的功能
2020/03/13 Python
HTML5 form标签之解放表单验证、增加文件上传、集成拖放的使用方法
2013/04/24 HTML / CSS
奇怪的鱼:Weird Fish
2018/03/18 全球购物
Osklen官方在线商店:巴西服装品牌
2019/04/25 全球购物
如何在.net Winform里面显示PDF文档
2012/09/11 面试题
试用期员工工作自我评价
2014/09/10 职场文书
学校运动会广播稿
2014/10/11 职场文书
护士年终考核评语
2014/12/31 职场文书
教师工作态度自我评价
2015/03/05 职场文书
2015年医院科室工作总结范文
2015/05/26 职场文书
PHP获取学生成绩的方法
2021/11/17 PHP
MySQL中int (10) 和 int (11) 的区别
2022/01/22 MySQL
Redis命令处理过程源码解析
2022/02/12 Redis
对讲机知识
2022/04/07 无线电
基于Android10渲染Surface的创建过程
2022/08/14 Java/Android