AngularJS简介
AngularJS 诞生于2009年,由Misko Hevery 等人创建,后为Google所收购。是一款优秀的前端JS框架,已经被用于Google的多款产品当中。AngularJS有着诸多特性,最为核心的是:MVC、模块化、自动化双向数据绑定、依赖注入等等。
AngularJS四大特征
- MVC模式:Angular遵循软件工程的MVC模式,并鼓励展现,数据,和逻辑组件之间的松耦合.通过依赖注入(dependency injection),Angular为客户端的Web应用带来了传统服务端的服务,例如独立于视图的控制。 因此,后端减少了许多负担,产生了更轻的Web应用。
- 双向绑定:AngularJS是建立在这样的信念上的:即声明式编程应该用于构建用户界面以及编写软件构建,而指令式编程非常适合来表示业务逻辑。框架采用并扩展了传统HTML,通过双向的数据绑定来适应动态内容,双向的数据绑定允许模型和视图之间的自动同步。因此,AngularJS使得对DOM的操作不再重要并提升了可测试性。
- 依赖注入:依赖注入(Dependency Injection,简称DI)是一种设计模式, 指某个对象依赖的其他对象无需手工创建,只需要“吼一嗓子”,则此对象在创建时,其依赖的对象由框架来自动创建并注入进来,其实就是最少知识法则;模块中所有的service和provider两类对象,都可以根据形参名称实现DI.
- 模块化设计:高内聚低耦合法则
常用指令
- 表达式:{{表达式 }} ,表达式可以是变量或是运算式
- ng-app 指令:告诉子元素一下的指令是归angularJs的,angularJs会识别的,同时网页加载完毕时会自动引导(自动初始化)应用程序。
- ng-model 指令:绑定变量
- ng-init指令:初始化指令
- ng-controller指令:指定所使用的控制器
- ng-click指令:单击事件指令,再点击时触发控制器的某个方法
- ng-repeat指令:循环数组变量
- $http指令:通过服务器获取数据
$scope
scope的使用贯穿整个AngularJSApp应用,它与数据模型相关联,同时也是表达式执行的上下文.有了scope 的使用贯穿整个 AngularJS App 应用,它与数据模型相关联,同时也是表达式执行的上下文.有了scope的使用贯穿整个AngularJSApp应用,它与数据模型相关联,同时也是表达式执行的上下文.有了scope 就在视图和控制器之间建立了一个通道,基于作用域视图在修改数据时会立刻更新 scope,同样的scope,同样的scope,同样的scope 发生改变时也会立刻重新渲染视图.
例子
<html>
<head>
<title>入门案例</title>
<script src="angular.min.js"></script>
<script>
var app=angular.module("myApp",[]);
app.controller("myController",function($scope,$http){
$scope.add=function(){
$scope.z = parseInt($scope.x) + parseInt($scope.y);
}
$scope.list=[
{name:'张三',shuxue:100,yuwen:100},
{name:'李四',shuxue:30,yuwen:20},
{name:'王五',shuxue:50,yuwen:40}
];
$scope.findAll=function(){
$http.get('data.json').success(
function(response){
$scope.list=response;
}
);
}
});
</script>
</head>
<body ng-app="myApp" ng-controller="myController" ng-init="findAll()">
第一个数:<input ng-model="x"> 第二个数:<input ng-model="y"> <button ng-click="add()">计算</button>
结果为:{{z}}
<table>
<tr>
<td>姓名</td>
<td>数学</td>
<td>语文</td>
</tr>
<tr ng-repeat="entity in list">
<td>{{entity.name}}</td>
<td>{{entity.shuxue}}</td>
<td>{{entity.yuwen}}</td>
</tr>
</table>
</body>
</html>
- 以上分别演示了几种,下面分别对应解释
$scope.z = parseInt($scope.x) + parseInt($scope.y);
这里就是一个双向绑定,绑定输入框中的值<input ng-model="x">
,这里使用的指令是“ng-model”这样就可以绑定,然后计算,同时<button ng-click="add()">
按钮也使用了单击事件$scope.list
是将数据存放一个list集合,这里使用的是json格式哦,同时,页面使用ng-repeat="entity in list"
指令来获取$http.get('data.json')
这里的$http是从服务器上获取数据,需要有个tomcat之类的服务器哦,返回的数据也是json格式,所以我们可以直接$scope.list=response;
就将json数据直接存放进数组,然后输出显示- 页面显示都是{{表达式}}的格式哦
切记
一定要引入所需要的js文件哦,不然写再多都是没有用的哦
总结
以上代码也只是一个简单的实例,建议还是看看源码,然后多尝试练习下