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 下拉列表 二级联动插件分享
Mar 29 Javascript
用js实现in_array的方法
Nov 05 Javascript
JS图片切换的具体方法(带缩略图版)
Nov 12 Javascript
js实现在同一窗口浏览图片
Sep 17 Javascript
Javascript中的方法和匿名方法实例详解
Jun 13 Javascript
JavaScript+html5 canvas绘制的小人效果
Jan 27 Javascript
功能强大的Bootstrap组件(结合js)
Aug 03 Javascript
详解如何较好的使用js
Dec 16 Javascript
Vue.extend构造器的详解
Jul 17 Javascript
VUE中的无限循环代码解析
Sep 22 Javascript
如何用Node写页面爬虫的工具集
Oct 26 Javascript
React Hooks的深入理解与使用
Nov 12 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递归调用的小技巧讲解
2013/02/19 PHP
PHP查询快递信息的方法
2015/03/07 PHP
PHP使用array_merge重新排列数组下标的方法
2015/07/22 PHP
10个值得深思的PHP面试题
2016/11/14 PHP
使用php自动备份数据库表的实现方法
2017/07/28 PHP
php实现的AES加密类定义与用法示例
2018/01/29 PHP
php的扩展写法总结
2019/05/14 PHP
jQuery的强大选择器小结
2009/12/27 Javascript
JavaScript写的一个自定义弹出式对话框代码
2010/01/17 Javascript
Bootstrap按钮下拉菜单组件详解
2016/05/10 Javascript
JavaScript常用判断写法大全(推荐)
2016/05/30 Javascript
js实现精确到毫秒的倒计时效果
2016/08/05 Javascript
基于JSON格式数据的简单jQuery幻灯片插件(jquery-slider)
2016/08/10 Javascript
CSS3 media queries结合jQuery实现响应式导航
2016/09/30 Javascript
js中小数向上取整数,向下取整数,四舍五入取整数的实现(必看篇)
2017/02/13 Javascript
基于JavaScript实现图片剪切效果
2017/03/07 Javascript
利用prop-types第三方库对组件的props中的变量进行类型检测
2017/05/02 Javascript
Angular2使用Angular-CLI快速搭建工程(二)
2017/05/21 Javascript
详解搭建es6+devServer简单开发环境
2018/09/25 Javascript
小程序实现左滑删除功能
2018/10/30 Javascript
基于jquery实现的tab选项卡功能示例【附源码下载】
2019/06/10 jQuery
vue渲染方式render和template的区别
2020/06/05 Javascript
[56:47]Ti4 循环赛第三日 iG vs Liquid
2014/07/12 DOTA
python使用wmi模块获取windows下硬盘信息的方法
2015/05/15 Python
利用python Selenium实现自动登陆京东签到领金币功能
2019/10/31 Python
python实现将中文日期转换为数字日期
2020/07/14 Python
浅析关于Keras的安装(pycharm)和初步理解
2020/10/23 Python
canvas进阶之贝塞尔公式推导与物体跟随复杂曲线的轨迹运动
2018/01/10 HTML / CSS
Charlotte Tilbury美国官网:英国美妆品牌
2017/10/13 全球购物
C#如何调用Word并打开一个Word文档
2013/05/08 面试题
厨师长岗位职责
2014/03/02 职场文书
安全保证书范文
2014/04/29 职场文书
ktv筹备计划书
2014/05/03 职场文书
房产授权委托书范本
2014/09/22 职场文书
乡镇保密工作承诺书
2015/05/04 职场文书
SQLServer中JSON文档型数据的查询问题解决
2021/06/27 SQL Server