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 相关文章推荐
JQuery获取浏览器窗口内容部分高度的代码
Feb 24 Javascript
用js控制组织结构图可以任意拖拽到指定位置
Jan 17 Javascript
jquery获取元素索引值index()示例
Feb 13 Javascript
Node.js中使用Buffer编码、解码二进制数据详解
Aug 16 Javascript
JavaScript中实现最高效的数组乱序方法
Oct 11 Javascript
基于jPlayer三分屏的制作方法
Dec 21 Javascript
jQueryeasyui 中如何使用datetimebox 取两个日期间相隔的天数
Jun 13 jQuery
在 Linux/Unix 中不重启 Vim 而重新加载 .vimrc 文件的流程
Mar 21 Javascript
CSS3 动画卡顿性能优化的完美解决方案
Sep 20 Javascript
开发用到的js封装方法(20种)
Oct 12 Javascript
如何使用Node.js爬取任意网页资源并输出PDF文件到本地
Jun 17 Javascript
vue 实现锚点功能操作
Aug 10 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 常用数组内部函数(Array Functions)介绍
2013/06/05 PHP
详解PHP对数组的定义以及数组的创建方法
2015/11/27 PHP
Yii2框架引用bootstrap中日期插件yii2-date-picker的方法
2016/01/09 PHP
PHP页面跳转操作实例分析(header方法)
2016/09/28 PHP
php常用经典函数集锦【数组、字符串、栈、队列、排序等】
2019/08/23 PHP
jQuery 第二课 操作包装集元素代码
2010/03/14 Javascript
扩展javascript的Date方法实现代码(prototype)
2010/11/20 Javascript
jQuery插件EnPlaceholder实现输入框提示文字
2015/06/05 Javascript
详解vue-cli 接口代理配置
2017/12/13 Javascript
微信小程序实现倒计时调用相机自动拍照功能
2018/06/10 Javascript
JS浅拷贝和深拷贝原理与实现方法分析
2019/02/28 Javascript
vue 实现滚动到底部翻页效果(pc端)
2019/07/31 Javascript
TypeScript中使用getElementXXX()的示例代码
2019/09/12 Javascript
vant IndexBar实现的城市列表的示例代码
2019/11/20 Javascript
JQuery中的常用事件、对象属性与使用方法分析
2019/12/23 jQuery
浅谈es6中的元编程
2020/12/01 Javascript
对于Python中线程问题的简单讲解
2015/04/03 Python
对Python中创建进程的两种方式以及进程池详解
2019/01/14 Python
Django ORM多对多查询方法(自定义第三张表&amp;ManyToManyField)
2019/08/09 Python
python基于json文件实现的gearman任务自动重启代码实例
2019/08/13 Python
在win64上使用bypy进行百度网盘文件上传功能
2020/01/02 Python
丝芙兰香港官网:Sephora香港
2018/03/13 全球购物
Book Depository欧盟:一家领先的国际图书零售商
2019/05/21 全球购物
四种会话跟踪技术
2015/05/20 面试题
黄金搭档广告词
2014/03/21 职场文书
《北大荒的秋天》教学反思
2014/04/14 职场文书
优秀大专毕业生求职信
2014/08/04 职场文书
简历自我评价优缺点
2015/03/11 职场文书
交通安全月活动总结
2015/05/08 职场文书
2015年学校财务工作总结
2015/05/19 职场文书
八年级地理课件资料及考点知识分享
2019/08/30 职场文书
导游词之江苏溱潼古镇
2019/11/27 职场文书
如何用vue实现网页截图你知道吗
2021/11/17 Vue.js
vscode内网访问服务器的方法
2022/06/28 Servers
Java多线程并发FutureTask使用详解
2022/06/28 Java/Android
详解CSS中postion和opacity及cursor的特性
2022/08/14 HTML / CSS