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打开新窗口同时关闭旧窗口
Jan 16 Javascript
滚动条变色 隐藏滚动条与双击网页自动滚屏显示代码
Dec 28 Javascript
非阻塞动态加载javascript广告实现代码
Nov 17 Javascript
动态载入js提高网页打开速度的方法
Jul 04 Javascript
JavaScript中的类与实例实现方法
Jan 23 Javascript
jquery插件tytabs.jquery.min.js实现渐变TAB选项卡效果
Aug 25 Javascript
JS+CSS实现仿支付宝菜单选中效果代码
Sep 25 Javascript
利用CSS3在Angular中实现动画
Jan 15 Javascript
js replace(a,b)之替换字符串中所有指定字符的方法
Aug 17 Javascript
Node.js  REPL (交互式解释器)实例详解
Aug 06 Javascript
jQuery 查找元素操作实例小结
Oct 02 jQuery
详解vue中v-for的key唯一性
May 15 Vue.js
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相当简单的分页类
2008/10/02 PHP
用PHP的超级变量$_POST获取HTML表单(HTML Form) 数据
2011/05/07 PHP
php jquery 多文件上传简单实例
2013/12/23 PHP
简单谈谈php中ob_flush和flush的区别
2014/11/27 PHP
PHP一个简单的无需刷新爬虫
2019/01/05 PHP
PHP单元测试配置与使用方法详解
2019/12/27 PHP
在jQuery1.5中使用deferred对象 着放大镜看Promise
2011/03/12 Javascript
验证码按回车不变解决方法
2013/03/29 Javascript
js特效,页面下雪的小例子
2013/06/17 Javascript
JavaScript Window浏览器对象模型方法与属性汇总
2015/04/20 Javascript
jQuery中值得注意的trigger方法浅析
2016/12/12 Javascript
工作中常用的js、jquery自定义扩展函数代码片段汇总
2016/12/22 Javascript
BootStrap Tooltip插件源码解析
2016/12/27 Javascript
jQuery遍历节点方法汇总(推荐)
2017/05/13 jQuery
不使用 JS 匿名函数理由
2017/11/17 Javascript
vue2.5.2使用http请求获取静态json数据的实例代码
2018/02/27 Javascript
VUE 实现复制内容到剪贴板的两种方法
2019/04/24 Javascript
你了解vue3.0响应式数据怎么实现吗
2019/06/07 Javascript
解决vue中使用proxy配置不同端口和ip接口问题
2019/08/14 Javascript
layui原生表单验证的实例
2019/09/09 Javascript
[52:07]完美世界DOTA2联赛PWL S3 LBZS vs access 第二场 12.10
2020/12/13 DOTA
Python利用多进程将大量数据放入有限内存的教程
2015/04/01 Python
简单介绍Python中的filter和lambda函数的使用
2015/04/07 Python
Python的Tornado框架实现图片上传及图片大小修改功能
2016/06/30 Python
详解用Python练习画个美队盾牌
2019/03/23 Python
如何运行.ipynb文件的图文讲解
2019/06/27 Python
浅谈python 中类属性共享的问题
2019/07/02 Python
Django之PopUp的具体实现方法
2019/08/31 Python
Pytorch 计算误判率,计算准确率,计算召回率的例子
2020/01/18 Python
python进度条显示-tqmd模块的实现示例
2020/08/23 Python
Python爬虫爬取微博热搜保存为 Markdown 文件的源码
2021/02/22 Python
美国山地自行车、露营、户外装备和服装购物网站:Aventuron
2018/05/05 全球购物
艺术系应届生的自我评价
2013/10/19 职场文书
三方协议书范本
2014/04/22 职场文书
实验心得体会范文
2016/01/25 职场文书
详解Oracle块修改跟踪功能
2021/11/07 Oracle