• 从es6到AngularJS入门


    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结构操作

    示例代码如下:

    1. html>
    2. <html ng-app='myApp' ng-controller='myctl'>
    3. <head>
    4. <script src="https://cdn.staticfile.org/angular.js/1.4.6/angular.min.js">script>
    5. head>
    6. <body>
    7. <form class="simple-form">
    8. Name: <input type="text" ng-model="user.name" required/><br />
    9. E-mail: <input type="email" ng-model="user.email" required/><br />
    10. <div ng-show="form.uEmail.$dirty && form.uEmail.$invalid">Invalid:
    11. <span ng-show="form.uEmail.$error.required">Tell us your email.span>
    12. <span ng-show="form.uEmail.$error.email">This is not a valid email.span>
    13. div>
    14. Gender: <input type="radio" ng-model="user.gender" value="male" />male
    15. <input type="radio" ng-model="user.gender" value="female" />female<br />
    16. <input type="checkbox" ng-model="user.agree" name="userAgree" required />
    17. I agree: <input ng-show="user.agree" type="text" ng-model="user.agreeSign"
    18. required /><br />
    19. <div ng-show="!user.agree || !user.agreeSign">Please agree and sign.div>
    20. <button ng-click="reset()" ng-disabled="isUnchanged(user)">RESETbutton>
    21. <button ng-click="update(user)" ng-disabled="form.$invalid || isUnchanged(user)">SAVEbutton>
    22. form>
    23. <pre>form = {{user | json}} pre>
    24. <pre>master = {{master | json}} pre>
    25. body>
    26. <script>
    27. angular.module('myApp',[])
    28. .controller('myctl',function($scope){
    29. $scope.master={};
    30. $scope.update=function(user){//update event
    31. $scope.master=angular.copy(user);
    32. $http({
    33. method:'POST',
    34. url:'http://127.0.0.1:8080/user/update',
    35. user:$scope.use
    36. }).then(function correct(result){
    37. $scope.master=result.user;
    38. },function error(result){
    39. console.log(error);
    40. });
    41. }
    42. $scope.reset=function(){// back event
    43. $scope.user=angular.copy($scope.master);
    44. }
    45. $scope.inUnchanged=function(user){// compare event
    46. return angular.equals(user,$scope.master);
    47. }
    48. $scope.reset(); // set to empty value when init
    49. });
    50. script>
    51. html>

    示例代码中展示了AngularJS常用的基本功能:

    1、视图绑定、设定视图区域

    2、数据初始化

    3、表单验证

    4、双向绑定

    5、数据提交远程服务器

    6、事件处理

    7、数据过滤

    AngularJS的功能要比上面细致很多,需要到官网上仔细研读。

  • 相关阅读:
    Python接口自动化测试实战详解,你想要的全都有
    vue通过一组id匹配另一个数组中的对象
    msyql事务ACID特性及其实现原理
    Nginx浏览器缓存
    SAP MRP中的滚动提前期简介(MRP自动删除已固定计划订单)
    linux(nginx安装配置,tomcat服务命令操作)
    SQLServer和Oracle,存储过程区别,常用函数对比
    leetcode题刷250天(87)——654. 最大二叉树(DFS)
    TrackBar控件
    CICD命令
  • 原文地址:https://blog.csdn.net/seacean2000/article/details/125897559