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 相关文章推荐
IE DOM实现存在的部分问题及解决方法
Jul 25 Javascript
js 事件处理函数间的Event物件是否全等
Apr 08 Javascript
js优化针对IE6.0起作用(详细整理)
Dec 25 Javascript
js使用心得分享
Jan 13 Javascript
WEB前端开发都应知道的jquery小技巧及jquery三个简写
Nov 15 Javascript
javascript代码调试之console.log 用法图文详解
Sep 30 Javascript
原生js实现移动端触摸轮播的示例代码
Dec 22 Javascript
AngularJS实现的锚点楼层跳转功能示例
Jan 02 Javascript
详解ES6语法之可迭代协议和迭代器协议
Jan 13 Javascript
Javascript组合继承方法代码实例解析
Apr 02 Javascript
原生JS实现无缝轮播图片
Jun 24 Javascript
JavaScript如何优化逻辑判断代码详解
Jun 08 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和XSL stylesheets转换XML文档
2006/10/09 PHP
hessian 在PHP中的使用介绍
2010/12/13 PHP
php 生成短网址原理及代码
2014/01/23 PHP
php简单实现多字节字符串翻转的方法
2015/03/31 PHP
PHP数据对象PDO操作技巧小结
2016/09/27 PHP
php中通过eval实现字符串格式的计算公式
2017/03/18 PHP
javascript 节点遍历函数
2010/03/28 Javascript
javascript 防止刷新,后退,关闭
2010/08/07 Javascript
EasyUi datagrid 实现表格分页
2015/02/10 Javascript
jquery实现带渐变淡入淡出并向右依次展开的多级菜单效果实例
2015/08/22 Javascript
jQuery position() 函数详解以及jQuery中position函数的应用
2015/12/14 Javascript
Javascript缓存API
2016/06/14 Javascript
AngularJs页面筛选标签小功能
2016/08/01 Javascript
详解如何使用Node.js编写命令工具——以vue-cli为例
2017/06/29 Javascript
Vue2路由动画效果的实现代码
2017/07/10 Javascript
详解JavaScript按概率随机生成事件
2017/08/02 Javascript
React Native 通告消息竖向轮播组件的封装
2020/08/25 Javascript
bootstrap模态框弹出和隐藏,动态改变中间内容的实例
2018/08/10 Javascript
file-loader打包图片文件时路径错误输出为[object-module]的解决方法
2020/01/03 Javascript
Python中__call__用法实例
2014/08/29 Python
详解Python的Django框架中的模版相关知识
2015/07/15 Python
Python logging设置和logger解析
2019/08/28 Python
深入浅析pycharm中 Make available to all projects的含义
2020/09/15 Python
详解python的super()的作用和原理
2020/10/29 Python
基于HTML5 Canvas 实现弹出框效果
2017/06/05 HTML / CSS
西海岸男士和男童服装:Johnnie-O
2018/03/15 全球购物
Exoticca英国:以最优惠的价格提供豪华异国情调旅行
2018/10/18 全球购物
中国制造网:Made-in-China.com
2019/10/25 全球购物
个人股份转让协议书范本
2014/10/26 职场文书
2014年妇女工作总结
2014/12/06 职场文书
文明礼仪倡议书
2015/04/28 职场文书
政审证明范文
2015/06/19 职场文书
小学教育见习总结
2015/06/23 职场文书
银行岗位培训心得体会
2016/01/09 职场文书
技术转让协议书
2016/03/19 职场文书
浅谈Redis缓冲区机制
2022/06/05 Redis