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 相关文章推荐
JavaScript delete操作符应用实例
Jan 13 Javascript
js function定义函数的几种不错方法
Feb 27 Javascript
写给小白的JavaScript引擎指南
Dec 04 Javascript
AngularJS使用ngMessages进行表单验证
Dec 27 Javascript
jQuery Mobile开发中日期插件Mobiscroll使用说明
Mar 02 Javascript
基于BootStrap的图片轮播效果展示实例代码
May 23 Javascript
domReady的实现案例
Nov 23 Javascript
微信小程序-拍照或选择图片并上传文件
Jan 06 Javascript
Textarea输入字数限制实例(兼容iOS&amp;安卓)
Jul 06 Javascript
js单页hash路由原理与应用实战详解
Aug 14 Javascript
详解js根据百度地图提供经纬度计算两点距离
May 13 Javascript
jQuery弹框插件使用方法详解
May 26 jQuery
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 命令行参数详解及应用
2011/05/18 PHP
PHP排序算法类实例
2015/06/17 PHP
PHP多个图片压缩成ZIP的方法
2020/08/18 PHP
Ajax+PHP实现的分类列表框功能示例
2019/02/11 PHP
Laravel框架查询构造器 CURD操作示例
2019/09/04 PHP
function, new function, new Function之间的区别
2007/03/08 Javascript
仅IE6/7/8中innerHTML返回值忽略英文空格的问题
2011/04/07 Javascript
jQuery插件开发基础简单介绍
2013/01/07 Javascript
实用的JS正则表达式(手机号码/IP正则/邮编正则/电话等)
2013/01/11 Javascript
jQuery 遍历-nextUntil()方法以及prevUntil()方法的使用介绍
2013/04/26 Javascript
子窗体与父窗体传值示例js代码
2013/08/01 Javascript
JS给超链接加确认对话框的方法
2015/02/24 Javascript
JavaScript进阶练习及简单实例分析
2016/06/03 Javascript
JavaScript编写一个贪吃蛇游戏
2017/03/09 Javascript
js如何获取网页所有图片
2017/05/12 Javascript
web前端vue之CSS过渡效果示例
2018/01/10 Javascript
Node.js readline模块与util模块的使用
2018/03/01 Javascript
vue3+typescript实现图片懒加载插件
2020/10/26 Javascript
[42:20]2014 DOTA2华西杯精英邀请赛5 24 DK VS NewBee
2014/05/25 DOTA
Python字典,函数,全局变量代码解析
2017/12/18 Python
django缓存配置的几种方法详解
2018/07/16 Python
django之跨表查询及添加记录的示例代码
2018/10/16 Python
Python编程图形库之Pillow使用方法讲解
2018/12/28 Python
基于Python3.6中的OpenCV实现图片色彩空间的转换
2020/02/03 Python
Pycharm制作搞怪弹窗的实现代码
2021/02/19 Python
css3隔行变换色实现示例
2014/02/19 HTML / CSS
日本高端护肤品牌:Tatcha
2016/08/29 全球购物
Club Monaco加拿大官网:设计师男女服装
2019/09/29 全球购物
高中三年学习生活的自我评价
2013/10/10 职场文书
迟到检讨书400字
2014/01/13 职场文书
奉献演讲稿范文
2014/05/21 职场文书
法人委托书
2014/07/31 职场文书
2015年民主生活会发言材料
2014/12/15 职场文书
学校青年志愿者活动总结
2015/05/06 职场文书
2015年政务公开工作总结
2015/05/19 职场文书
解析Java中的static关键字
2021/06/14 Java/Android