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 相关文章推荐
精选的10款用于构建良好易用性网站的jQuery插件
Jan 23 Javascript
js确定对象类型方法
Mar 30 Javascript
javascript中attribute和property的区别详解
Jun 05 Javascript
超赞的jQuery图片滑块动画特效代码汇总
Jan 25 Javascript
浅析BootStrap模态框的使用(经典)
Apr 29 Javascript
jQuery导航条固定定位效果实例代码
May 26 jQuery
Node.js中sequelize时区的配置方法
Dec 10 Javascript
微信小程序实现form表单本地储存数据
Jun 27 Javascript
Vue+Typescript中在Vue上挂载axios使用时报错问题
Aug 07 Javascript
js判断鼠标移入移出方向的方法
Jun 24 Javascript
js实现3D旋转相册
Aug 02 Javascript
代码解析React中setState同步和异步问题
Jun 03 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 simplexmlElement操作xml的命名空间实现代码
2011/01/04 PHP
PHP使用内置dir类实现目录遍历删除
2015/03/31 PHP
PHP文件与目录操作示例
2016/12/24 PHP
深入理解Yii2.0乐观锁与悲观锁的原理与使用
2017/07/26 PHP
Jquery下判断Id是否存在的代码
2011/01/06 Javascript
jquery如何把参数列严格转换成数组实现思路
2013/04/01 Javascript
MyEclipse取消验证Js的两种方法
2013/11/14 Javascript
javascript的函数作用域
2014/11/12 Javascript
jquery实现无限分级横向导航菜单的方法
2015/03/12 Javascript
javascript动态设置样式style实例分析
2015/05/13 Javascript
巧方法 JavaScript获取超链接的绝对URL地址
2016/06/14 Javascript
javascript实现的全国省市县无刷新多级关联菜单效果代码
2016/08/01 Javascript
jQuery插件EasyUI获取当前Tab中iframe窗体对象的方法
2016/08/05 Javascript
JavaScript奇技淫巧44招【实用】
2016/12/11 Javascript
validationEngine 表单验证插件使用实例代码
2017/06/15 Javascript
ES6 javascript中class静态方法、属性与实例属性用法示例
2017/10/30 Javascript
vue等两个接口都返回结果再执行下一步的实例
2020/09/08 Javascript
Pyramid将models.py文件的内容分布到多个文件的方法
2013/11/27 Python
Python的自动化部署模块Fabric的安装及使用指南
2016/01/19 Python
Python错误提示:[Errno 24] Too many open files的分析与解决
2017/02/16 Python
Python入门_浅谈数据结构的4种基本类型
2017/05/16 Python
获取Django项目的全部url方法详解
2017/10/26 Python
Python面向对象之接口、抽象类与多态详解
2018/08/27 Python
Python wxPython库Core组件BoxSizer用法示例
2018/09/03 Python
Ubuntu下升级 python3.7.1流程备忘(推荐)
2018/12/10 Python
python实现在多维数组中挑选符合条件的全部元素
2019/11/26 Python
python enumerate内置函数用法总结
2020/01/07 Python
Python 找出出现次数超过数组长度一半的元素实例
2020/05/11 Python
用于ETL的Python数据转换工具详解
2020/07/21 Python
详解CSS3中Media Queries的相关使用
2015/07/17 HTML / CSS
CPB肌肤之钥美国官网:Clé de Peau Beauté
2017/09/05 全球购物
牦牛毛户外探险服装:Kora
2019/02/08 全球购物
简述你对Statement,PreparedStatement,CallableStatement的理解
2013/03/25 面试题
服务中心夜班服务员岗位职责
2013/11/27 职场文书
小班重阳节活动方案
2014/02/08 职场文书
公司总经理助理岗位职责
2014/07/09 职场文书