AngularJS 应用实例
2016-03-30 23:24
489 查看
<html ng-app="myNoteApp"> <head> <meta charset="utf-8"> <script src=".../angular.js/1.4.6/angular.min.js"></script> </head> <body> <div ng-controller="myNoteCtrl"> <h2>我的笔记</h2> <p><textarea ng-model="message" cols="40" rows="10"></textarea></p> <p> <button ng-click="save()">保存</button> <button ng-click="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>
应用程序文件 "myNoteApp.js":
var app = angular.module("myNoteApp", []);
控制器文件
"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 应用: ng-app="myNoteApp"
的容器:
<html ng-app="myNoteApp">
<div> 是 HTML 页面中控制器: 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>
应用库文件需要在 AngularJs 加载后才能执行:
<script src="myNoteApp.js"></script>
<script src="myNoteCtrl.js"></script>
AngularJS 应用架构
以上实例是一个完整的 AngularJS 单页Web应用(single page web application,SPA)。<html> 元素包含了 AngularJS 应用 (ng-app=)。
<div> 元素定义了 AngularJS 控制器的作用域 (ng-controller=)。
在一个应用可以由很多控制器。
应用文件(my...App.js) 定义了应用模型代码。
一个或多个控制器文件 (my...Ctrl.js) 定义了控制器代码。
总结 - 它是如何工作的呢?
ng-app 指令位于应用的根元素下。对于单页Web应用(single page web application,SPA),应用的根通常为 <html> 元素。
一个或多个 ng-controller 指令定义了应用的控制器。每个控制器有他自己的作用域:: 定义的 HTML 元素。
AngularJS 在 HTML DOMContentLoaded 事件中自动开始。如果找到 ng-app 指令 , AngularJS 载入指令中的模块,并将 ng-app 作为应用的根进行编译。
应用的根可以是整个页面,或者页面的一小部分,如果是一小部分会更快编译和执行。
相关文章推荐
- angularjs中的时间插件
- Angularjs 基于karma和jasmine的单元测试
- angularjs学习5--过滤器(二)
- AngularJS Scope(作用域)
- AngularJS 应用入门
- $filter 在视图和控制器的使用以及自定义带参数的过滤器
- angularjs 嵌套控制器,子控制器访问父控制器
- Angularjs 设置全局变量的3种方法
- [AngularJS] 1. Angular JS的五大特性
- 【AngularJS】——核心特性之服务
- angular 日期与字符串互转
- angularjs中$q详解
- 关于angularJS绑定数据时自动转义html标签
- angular中 ng-if 指令中的ng-model等指令失效问题
- AngularJS的Provider, Value, Constant, Service, Factory, Decorator的区别与详解
- 由于angular ng-repeat只能写在标签上 循环对象的对象时遇到的问题及解决方法
- AngularJS 前端 MVC 的设计与搭建
- [angularjs] angularjs系列笔记(八)事件
- angular先加载页面再执行事件,特别在动态生成id,然后做echarts等图表
- AngularJS服务总结