一、双向数据绑定
传统来说,从model中获取数据,然后手动获取更新到view中。AngularJS是自动更新。用例子简单说明:
<span style="font-size:18px;"><!doctypehtml> <htmlng-app> <head> <scriptsrc="js/angular-1.3.0.js"></script> </head> <body> <div> <label>NAME:</label> <input type="text"ng-model="yourName" placeholder="Enter a name here"> <hr> <h1>Hello,{{yourName}}!</h1> </div> </body> </html></span>
效果是:
你在文本框中输入什么,Hello后边就出来什么,不用自己再去从文本框取值,然后更新到下边。
二、模块
在JavaScript中,将函数代码全部都定义在全局命名空间中绝对不是什么好主意, 这样做会导致冲突从而使调试变得非常困难,浪费宝贵的开发时间。
在AngularJS中我们把它封装在模块(module)中单元内,模块是定义应用的最主要方式。模块包含了主要的应用代码。一个应用可以包含多个模块,每一个模块都包含了定义具体功能的代码。
使用模块的好处:
保持全局命名空间的清洁;
编写测试代码更容易,并能保持其清洁,以便更容易找到互相隔离的功能;
易于在不同应用间复用代码;
使应用能够以任意顺序加载代码的各个部分。
AngularJS允许我们使用 angular.module() 方法来声明模块,这个方法能够接受两个参数,第一个是模块的名称,第二个是依赖列表,也就是可以被注入到模块中的对象列表。
angular.module('myApp',[]);
angular.module('myApp')
三、MVC
为什么需要MVC?
代码规模越来越大,切分职责是大势所趋
为了复用:很多逻辑都是一样的,
MVC只是手段,终极目标是模块化和复用
上篇博客中“Hello World”例子已经说明。这里就不再举例。
四、依赖注入
一个对象通常有三种方式可以获得对其依赖的控制权:
(1) 在内部创建依赖;
(2) 通过全局变量进行引用;
(3) 在需要的地方通过参数进行传递。
angularJS依赖注入是通过第三种方式实现的。
从功能上看,依赖注入会事先自动查找依赖关系,并将注入目标告知被依赖的资源,这样就可以在目标需要时立即将资源注入进去
实现小例子:
html
<span style="font-size:18px;"><!doctypehtml> <head> <Meta charset="utf-8"> <scriptsrc="js/angular-1.3.0.js"></script> <scriptsrc="yilaizhuru.js"></script> </head> <div ng-app="myApp"> <div ng-controller="MyController"> <buttonng-click="sayHello()">Hello</button> </div> </div></span>
js
<span style="font-size:18px;">angular.module('myApp',[]) .factory('greeter',function() { return { greet: function(msg){alert(msg);} } }) .controller('MyController',function($scope,greeter) { $scope.sayHello = function() { greeter.greet("Hello!"); }; });</span>
效果图:
五、指令
常用指令:
ng-app - 该指令启动一个AngularJS应用。
ng-init - 该指令初始化应用程序数据。
ng-model - 此指令定义的模型,该模型是变量在AngularJS使用。
ng-repeat - 该指令将重复集合中的每个项目的HTML元素。
根据自己的需求可以自定义指令,以后会详解。
总结
以上写的东西只是各部分的只言片语,下来会详细介绍。