AngularJS是一个前端框架,入门难度对不同基础的人来说是不同的,这里假设是对es6具有熟练的基础,同时对MVC比较熟练。
AngularJS是一种MVC模式下的前端框架,这本身与js面向过程是有不和谐的地方,但是当用AnguarJS组织前端整体结构,形成MVC模式,方法中采用js面向过程时,这又深深的切合了面向对象的要点,变得和谐统一。
AngularJS的特点:
1、面向对象风格
2、具有类似于spring框架的依赖注入特性
3、支持单页面应用,可使用路由组织页面的切换、解析
4、可以使用MVC结构,对service层做分离,以服务的方式注入
5、angular.module方法是对视图层以外内容的处理,更多体现了对controller层的处理,如引入服务、提供初始化数据、提供事件响应支持、切换页面等
6、在视图中,以ng-app 属性指定module对应的解析区域,支持双向绑定、表单验证、事件定义等
7、封装了Ajax的API,简单易用,数据解析可以同框架本身的过滤器和表格等特性联用,降低了处理难度
8、视图部分可以切换为第三方的视图框架,如Bootstrap、Element UI等
9、适应于CURD的业务应用,不适用于频繁的底层DOM结构操作
示例代码如下:
- html>
-
- <html ng-app='myApp' ng-controller='myctl'>
-
- <head>
-
- <script src="https://cdn.staticfile.org/angular.js/1.4.6/angular.min.js">script>
-
- head>
-
- <body>
-
- <form class="simple-form">
-
- Name: <input type="text" ng-model="user.name" required/><br />
-
- E-mail: <input type="email" ng-model="user.email" required/><br />
-
- <div ng-show="form.uEmail.$dirty && form.uEmail.$invalid">Invalid:
-
- <span ng-show="form.uEmail.$error.required">Tell us your email.span>
-
- <span ng-show="form.uEmail.$error.email">This is not a valid email.span>
-
- div>
-
- Gender: <input type="radio" ng-model="user.gender" value="male" />male
-
- <input type="radio" ng-model="user.gender" value="female" />female<br />
-
- <input type="checkbox" ng-model="user.agree" name="userAgree" required />
-
- I agree: <input ng-show="user.agree" type="text" ng-model="user.agreeSign"
-
- required /><br />
-
- <div ng-show="!user.agree || !user.agreeSign">Please agree and sign.div>
-
- <button ng-click="reset()" ng-disabled="isUnchanged(user)">RESETbutton>
-
- <button ng-click="update(user)" ng-disabled="form.$invalid || isUnchanged(user)">SAVEbutton>
-
- form>
-
- <pre>form = {{user | json}} pre>
-
- <pre>master = {{master | json}} pre>
-
- body>
-
- <script>
-
- angular.module('myApp',[])
-
- .controller('myctl',function($scope){
-
- $scope.master={};
-
-
-
- $scope.update=function(user){//update event
-
- $scope.master=angular.copy(user);
-
- $http({
-
- method:'POST',
-
- url:'http://127.0.0.1:8080/user/update',
-
- user:$scope.use
-
- }).then(function correct(result){
-
- $scope.master=result.user;
-
- },function error(result){
-
- console.log(error);
-
- });
-
- }
-
-
-
- $scope.reset=function(){// back event
-
- $scope.user=angular.copy($scope.master);
-
- }
-
- $scope.inUnchanged=function(user){// compare event
-
- return angular.equals(user,$scope.master);
-
- }
-
-
-
- $scope.reset(); // set to empty value when init
-
- });
-
- script>
-
- html>
示例代码中展示了AngularJS常用的基本功能:
1、视图绑定、设定视图区域
2、数据初始化
3、表单验证
4、双向绑定
5、数据提交远程服务器
6、事件处理
7、数据过滤
AngularJS的功能要比上面细致很多,需要到官网上仔细研读。