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中也使用$美元符号来代替document.getElementById
Jun 19 Javascript
js 连接数据库如何操作数据库中的数据
Nov 23 Javascript
JavaScript生成GUID的多种算法小结
Aug 18 Javascript
JavaScript中计算网页中某个元素的位置
Jun 10 Javascript
分享JS数组求和与求最大值的方法
Aug 11 Javascript
jQuery解析返回的xml和json方法详解
Jan 05 Javascript
web前端vue实现插值文本和输出原始html
Jan 19 Javascript
vue2.0+koa2+mongodb实现注册登录
Apr 10 Javascript
vue项目中应用ueditor自定义上传按钮功能
Apr 27 Javascript
VuePress 静态网站生成方法步骤
Feb 14 Javascript
javascript实现简易聊天室
Jul 12 Javascript
vue 将多个过滤器封装到一个文件中的代码详解
Sep 05 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_multisort()使用方法介绍
2012/05/16 PHP
php定时删除文件夹下文件(清理缓存文件)
2013/01/23 PHP
PHP从零开始打造自己的MVC框架之类的自动加载实现方法详解
2019/06/03 PHP
Javascript - HTML的request类
2006/07/15 Javascript
Span元素的width属性无效果原因及解决方案
2010/01/15 Javascript
Jquery + Ajax调用webService实例代码(asp.net)
2010/08/27 Javascript
浅析javascript闭包 实例分析
2010/12/25 Javascript
JavaScript中“+”的陷阱深刻理解
2012/12/04 Javascript
用jquery实现点击栏目背景色改变
2012/12/10 Javascript
offsetHeight在OnLoad中获取为0的现象
2013/07/22 Javascript
js冒泡法和数组转换成字符串示例代码
2013/08/14 Javascript
jquery为页面增加快捷键示例
2014/01/31 Javascript
node.js中的events.emitter.once方法使用说明
2014/12/10 Javascript
node.js中的fs.readlinkSync方法使用说明
2014/12/17 Javascript
JQuery中DOM事件绑定用法详解
2015/06/13 Javascript
jQuery实现多级联动下拉列表查询框
2016/01/18 Javascript
JavaScript必知必会(六) delete in instanceof
2016/06/08 Javascript
深入浅出ES6新特性之函数默认参数和箭头函数
2016/08/01 Javascript
基于JS实现弹出一个隐藏的div窗口body页面变成灰色并且不可被编辑
2016/12/14 Javascript
vue2.0父子组件及非父子组件之间的通信方法
2017/01/21 Javascript
Bootstrap下拉菜单样式
2017/02/07 Javascript
原生js jquery ajax请求以及jsonp的调用方法
2017/08/04 jQuery
jQuery阻止事件冒泡实例分析
2018/07/03 jQuery
详解如何制作并发布一个vue的组件的npm包
2018/11/10 Javascript
JavaScript switch语句使用方法简介
2019/12/30 Javascript
Python cookbook(数据结构与算法)从序列中移除重复项且保持元素间顺序不变的方法
2018/03/13 Python
PyQT5 实现快捷键复制表格数据的方法示例
2020/06/19 Python
Expedia挪威官网:酒店、机票和租车
2018/03/03 全球购物
给同事的道歉信
2014/01/11 职场文书
老同学聚会感言
2014/02/23 职场文书
2014年五四青年节演讲比赛方案
2014/04/22 职场文书
2014年大学生预备党员思想汇报1000字
2014/09/13 职场文书
2015年学生会干事工作总结
2015/04/09 职场文书
通知的格式范文
2015/04/27 职场文书
浅谈golang 中time.After释放的问题
2021/05/05 Golang
python之django路由和视图案例教程
2021/07/26 Python