AngularJS快速入门指南18:Application
是时候创建一个真正的AngularJS单页面应用程序了(SPA)。
一个AngularJS应用程序示例
你已经了解了足够多的内容来创建第一个AngularJS应用程序:
程序代码即解释
<html ng-app="myNoteApp">
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script>
<body> <div ng-controller="myNoteCtrl"> <h2>My Note</h2> <p><textarea ng-model="message" cols="40" rows="10"></textarea></p> <p>
<button ng-click="save()">Save</button>
<button ng-click="clear()">Clear</button>
</p> <p>Number of characters left: <span ng-bind="left()"></span></p> </div> <script src="myNoteApp.js"></script>
<script src="myNoteCtrl.js"></script> </body>
</html>
application文件"myNoteApp.js"代码:
var app = angular.module("myNoteApp", []);
controller文件"myNoteCtrl.js"代码:
app.controller("myNoteCtrl", function($scope) {
$scope.message = "";
$scope.left = function() {return 100 - $scope.message.length;};
$scope.clear = function() {$scope.message = "";};
$scope.save = function() {alert("Note Saved");};
});
元素<html>被指定为AngularJS application的容器:ng-app="myNoteApp":
<html ng-app="myNoteApp">
页面中的<div>元素指定了控制器的作用域:ng-controller="myNoteCtrl":
<div ng-controller="myNoteCtrl">
ng-model指令将<textarea>元素绑定到控制器的message变量中:
<textarea ng-model="message" cols="40" rows="10"></textarea>
两个ng-click事件分别调用了控制器中的clear()函数和save()函数:
<button ng-click="save()">Save</button>
<button ng-click="clear()">Clear</button>
ng-bind指令将控制器的left()函数绑定到<span>元素上,用以显示剩余可以输入的字符数:
Number of characters left: <span ng-bind="left()"></span>
application libraries被添加到页面上(在AngularJS类库引用之后):
<script src="myNoteApp.js"></script>
<script src="myNoteCtrl.js"></script>
AngularJS应用程序框架
通过上面的示例,你已经拥有了一个真正的AngularJS应用程序框架(或者称之为脚手架),它是一个单页面应用程序(SPA)。
ng-app指令所在的HTML元素被定义为AngularJS应用程序的容器。
指令ng-controller所在的元素定义了AngularJS应用程序控制器的作用域。
在一个应用程序中你可以拥有多个控制器。
一个application文件(例如my...App.js)定义了一个application模块的代码。
一个或多个控制器文件(例如my...Ctrl.js)定义了控制器的代码。
它是如何工作的?
ng-app指令被放在application的根元素上。
对单页面应用程序(SPA)而言,application的根元素即<html>元素。
一个或多个ng-controller指令定义了application中不同的控制器。每一个控制器都有它自己的作用域:即包含该指令定义的HTML元素。
当HTML的DOMContentLoaded事件被执行时AngularJS会被自动调用。如果找到ng-app指令,AngularJS将会加载所有以指令命名的模块,并对以ng-app定义的application的根元素内的DOM进行编译。
application的根可以是整个页面,也可以是页面中的一小部分。AngularJS application定义的部分越小,application编译和执行的速度越快。
AngularJS快速入门指南18:Application的更多相关文章
- AngularJS快速入门指南19:示例代码
本文给出的大部分示例都可以直接运行,通过点击运行按钮来查看结果,同时支持在线编辑代码. <div ng-app=""> <p>Name: <input ...
- AngularJS快速入门指南17:Includes
使用AngularJS,你可以在HTML中包含其它的HTML文件. 在HTML中包含其它HTML文件? 当前的HTML文档还不支持该功能.不过W3C建议在后续的HTML版本中增加HTML import ...
- AngularJS快速入门指南01:导言
AngularJS使用新的attributes扩展了HTML AngularJS对单页面应用的支持非常好(SPAs) AngularJS非常容易学习 现在就开始学习AngularJS吧! 关于本指南 ...
- AngularJS快速入门指南20:快速参考
thead>tr>th, table.reference>tbody>tr>th, table.reference>tfoot>tr>th, table ...
- AngularJS快速入门指南16:Bootstrap
thead>tr>th, table.reference>tbody>tr>th, table.reference>tfoot>tr>th, table ...
- AngularJS快速入门指南15:API
thead>tr>th, table.reference>tbody>tr>th, table.reference>tfoot>tr>th, table ...
- AngularJS快速入门指南13:表单
一个AngularJS表单是一组输入型控件的集合. HTML控件 HTML输入型标签标包括: input标签 select标签 button标签 textarea标签 HTML表单 HTML表单将各种 ...
- AngularJS快速入门指南12:模块
AngularJS模块定义了一个application. 模块是一个application中不同部分的容器. application中的所有控制器都应该属于一个模块. 带有一个控制器的模块 下面这个a ...
- AngularJS快速入门指南11:事件
AngularJS拥有自己的HTML事件指令. ng-click指令 ng-click指令定义了AngularJS的click事件. <div ng-app="" ng-co ...
随机推荐
- Rancher 快速上手指南操作(1)
Rancher 快速上手指南操作(1)该指南知道用户如何快速的部署Rancher Server 管理容器.前提是假设你的机器已经安装好docker了.1 确认 docker 的版本,下面是 ubunt ...
- linux系统编程之错误处理机制
在讲解liunx错误处理机制之前我们先来看一段代码: #include<sys/types.h> #include<sys/stat.h> #include<fcntl. ...
- js动态时间
一.在<head></head> 之间写入下面js代码 <script type="text/javascript" language="J ...
- MS SQL查看效率语句 与PLSQL中F5功能相同
使用方法:打开SQL SERVER 查询分析器,输入以下语句: SET STATISTICS PROFILE ON SET STATISTICS IO ON SET STATISTICS TIME O ...
- View优化
前面写了个View画圆弧,为了让他和底层图片效果融合,采用先把圆弧画到和图片一样大小的画布上,然后用canvas的变换位图方法映射过去. bitmapWithReflection = Bitmap.c ...
- TYVJ博弈论
一些比较水的博弈论...(为什么都没有用到那什么SG呢....) TYVJ 1140 飘飘乎居士拯救MM 题解: 歌德巴赫猜想 #include <cmath> #include < ...
- 一行css代码调试中学到的javascript知识,很有意思
现在到处都是JavaScript,每天都能知道点新东西.一旦你入了门,你总能从这里或是那里领悟到很多知识.今天我想分享Addy Osmani的一行代码 ,这行代码对于你调试你的CSS是很有用的.为了可 ...
- ros学习笔记 - 深度传感器转换成激光数据(hector_slam)
前提条件:1,确保读者已经安装了kinect或者其他深度摄像头的驱动,如果未安装,可以直接在网盘下载:http://pan.baidu.com/s/1hqHB10w 提取密码:wrmn 利用深度相机仿 ...
- js压缩
1:用cmd命名 1.1:cmd下执行命令:"copy dialog.js+menu.js abc.js/b",则会合并dialog合menu两个js到新生成的abc.js; 1. ...
- Oracle 服务手动启动关闭
在windows7中安装完Oracle11g之后会出现一下七种服务:可通过运行->services.msc查看. 其中各个服务名称中的ORCL或orcl为SID即System IDentifie ...