通过jQuery的比较来认识AngularJS

这一章主要是通过几个例子分别通过jQuery和AngularJS来达到效果。主要通过思维转换来进一步了解AngularJS框架设计背后的思想。

注意: 1.为了不浪费界面时间,界面用到了bootstrap. 2.所有代码写在一个文件中,方便大家复制粘贴. 3.引入css和angularJS文件使用的是百度静态库,如果没有网络环境请自行下载引用依赖文件. 4.如果觉得看比较jquery和angularJS没有兴趣的,可以直接跳过,阅读下一章TodoList,这个列子是一步一步带大家完成熟悉angularJS编码思想

首先来看一个简单例子,大家可以直接复制粘贴代码,查看效果

用户输入

1.输入框输入值 2.下面h1标签马上有显示

下面是jquery代码

<!DOCTYPE html>
<html lang="en"> <head> <meta charset="UTF-8"> <title>输入测试</title> <link rel="stylesheet" href="http://apps.bdimg.com/libs/bootstrap/3.1.1/css/bootstrap.css"> </head> <body> <form> <div class="form-group"> <label for="inputName" class="col-sm-2 control-label">名字:</label> <div class="col-sm-10"> <input type="text" id="inputName" class="form-control" placeholder="请输入你的名字"> </div> </div> <div class="col-sm-10 col-sm-offset-2"> <h1 id="myText"></h1> </div> </form> </body> <script src="http://apps.bdimg.com/libs/jquery/2.1.1/jquery.min.js"></script> <script> $(function(){ $('#inputName').on('keyup',function(){ $('#myText').html($(this).val()); }); }); </script> </html> 

下面来看一下angularJS的代码

<!DOCTYPE html>
<html lang="en" ng-app> <head> <meta charset="UTF-8"> <title>Document</title> <link rel="stylesheet" href="http://apps.bdimg.com/libs/bootstrap/3.1.1/css/bootstrap.css"> </head> <body> <form> <div class="form-group"> <label for="inputName" class="col-sm-2 control-label">名字:</label> <div class="col-sm-10"> <input type="text" class="form-control" placeholder="请输入你的名字" ng-model="inputName"> </div> </div> <div class="col-sm-10 col-sm-offset-2"> <h1></h1> </div> </form> </body> <script src="http://apps.bdimg.com/libs/angular.js/1.2.9/angular.min.js"></script> </html> 

通过这个简单例子可以很清楚的看到,angularJS都没有写任何的JS代码就实现了这个输入效果。这里可以简单总结 1.jquery是通过操作DOM来达到实现目的,换句话说,也就是必须要有了页面,再根据页面来进行相应的编程 2.angularJS主要关心的却是数据

购物车

注意上面两点理论,我们来看一下稍微复杂点的例子,做一个简单的购物车.依据angularJS主要关心的是数据的这个特点,我们首先来编写angularJS相关代码,具体效果如下:

<!DOCTYPE html>
<html lang="en" ng-app="myApp"> <head> <meta charset="UTF-8"> <title>Document</title> <link rel="stylesheet" href="http://apps.bdimg.com/libs/bootstrap/3.1.1/css/bootstrap.css"> </head> <body> <div ng-controller="CartController" class="panel panel-primary"> <div class="panel-heading text-center"><h3>你的购物车</h1></div> <div class="panle-body"></div> <table class="table table-bordered table-hover"> <tr ng-repeat="item in items"> <td class="text-center"><span ng-bind="item.title"></span></td> <td class="text-center"> <input type="text" ng-model="item.quantity" class="form-control"> </td> <td class="text-center"><span></span></td> <td class="text-center"><span></span></td> <td> <button type="button" class="btn btn-primary" ng-click="del($index)"> 删除 </button> </td> </tr> <tr> <td colspan="4" class="text-center">总计</td> <td></td> </tr> </table> </div> </body> <script src="http://apps.bdimg.com/libs/angular.js/1.2.9/angular.min.js"></script> <script> var myApp = angular.module('myApp', []); myApp.controller('CartController', ['$scope', function($scope){ $scope.items = [ {title:'方便面',quantity:8,price:2.5}, {title:'可乐',quantity:18,price:3}, {title:'口香糖',quantity:12,price:4}, {title:'辣条',quantity:30,price:0.5} ]; $scope.total =total(); $scope.del = function(index){ $scope.items.splice(index,1); $scope.total = total(); } function total(){ var total = 0; $scope.items.forEach(function(item){ total += item.quantity * item.price; }); return total; 

转载于:https://www.cnblogs.com/Zengc-33/p/6077338.html

通过jQuery的比较来认识AngularJS相关推荐

  1. AngularJS 最佳实践

    AngularJS 最佳实践 2013-07-01 17:51 原文 简体 繁體 61,564 次围观 AngularJS 是一个 Web 应用框架,它实现了前端的 MVC 架构,能让开发人员很方便地 ...

  2. AngularJS进阶学习

    参考:http://***/class/54f3ba65e564e50cfccbad4b 1. AJAX:Asynchronous JavaScript and XML(异步的 JavaScript ...

  3. 从零学前端第十四讲:AngularJs进阶-作用域和控制器

    修真院Web工程师零基础全能课 本节课内容 AngularJs进阶-作用域和控制器 主讲人介绍 沁修,葡萄藤技术总监 项目经验丰富,擅长H5移动项目开发. 专注技术选型.底层开发.最佳代码实践规范总结 ...

  4. AngularJS的学习笔记(一)

    声明:单纯作为我自己的学习笔记,纯是为了自己学习,上面的话都是从各处粘贴,如有冒犯,请原谅我这个小菜鸟~ AngularJS使用了不同的方法,它尝试去补足HTML本身在构建应用方面的缺陷. 使用双大括 ...

  5. angularjs封装bootstrap官网的时间插件datetimepicker

    背景:angular与jquery类库的协作 第三方类库中,不得不提的是大名鼎鼎的jquery,现在基本上已经是国内web开发的必修工具了.它灵活的dom操作,让很多web开发人员欲罢不能.再加上已经 ...

  6. jquery检测input变化_jquery 监控input输入框值得变化

    一个小需求,监控input的值变化,查阅文档,发现很不方便. 一堆事件如,onpropertychange, input, keyup, paste, change, blur,又不能同时监听这些事件 ...

  7. angular 关闭当前页_angular刷新当前页 angularjs页面不刷新的解决办法 - 电脑常识 - 服务器之家...

    angular刷新当前页 angularjs页面不刷新的解决办法 发布时间:2017-03-19 来源:服务器之家 刚用angularjs时,确实被它的双向数据绑定震住了,但同时没有完合使用angul ...

  8. AngularJS学习笔记(1) - AngularJS入门

    什么是AngularJS? AngularJS是建立在jQuery的一个轻量级版本之上的MVC框架.MVC将业务逻辑代码和视图.模型相分离.AngularJS提供的所有功能都可以通过使用JavaScr ...

  9. 在JavaScript控制台中包含jQuery

    对于不使用jQuery的网站,是否有简便的方法将jQuery包含在Chrome JavaScript控制台中? 例如,在一个网站上,我想获取表中的行数. 我知道使用jQuery确实很容易. $('el ...

  10. AngularJs 总结

    AngularJS是什么? AngularJs(后面就简称ng了)是一个用于设计动态web应用的结构框架.首先,它是一个框架,不是类库,是像EXT一样提供一整套方案用于设计web应用.它不仅仅是一个j ...

最新文章

  1. AspectJ对AOP的实现
  2. C++primer 10.2.1节练习
  3. linux发邮件安装什么意思,linux – 如何找出安装/发送电子邮件的邮件程序?
  4. Vue.js-Day07【项目实战(附带 完整项目源码)-day02:学习能力、字体图标(使用步骤)、在vue.js中使用jQuery】
  5. dart系列之:dart语言中的异常
  6. 【图论】【斜率优化】前往大都会(loj 2769)
  7. eclipse构建及运行maven web项目
  8. web端项目管理/工程项目劳务资源管理系统/考勤审批/人员招聘/企业管理系统/工资管理/入职管理/组织结构/财务管理/大数据指挥中心/劳务系统/岗位工种/智慧工程监管/劳务app原型/axure原型
  9. 如何允许远程连接到MySQL
  10. 关于js对象添加属性
  11. vs2019安装包显示网络未链接_BBO最新5.19版下载及WBF世界网络赛指引
  12. Java题库(为了这辈子能吃上俩个菜好好学Java)
  13. php数据库根据手机号获取归属地,PHP通过API获取手机号码归属地
  14. (转)史上最全人工智能产品清单(1/3)
  15. 偏微分方程数值解---学习总结(2)
  16. Java多线程编程模式实战指南一:Active Object模式
  17. linux系统安装word,如何在Linux中安装FreeOffice 2018
  18. AI聊天机器人 — 机遇和挑战并存
  19. iOS常用开发工具及第三方框架
  20. 两年卖超2000万支,80%增长来自用户口碑,口腔护理品牌“贝医生”做了什么?

热门文章

  1. 第十章 深度强化学习-Prioritized Replay DQN
  2. make的时候会报错g++: Command not found
  3. 【keras/Tensorflow/pytorch】Conv2D和Conv2DTranspose详解
  4. matlab-lsqcurvefit函数
  5. ARCGIS操作教程学习
  6. php中fread用法,php fread函数与fread函数用法
  7. Flink SQL 实战:双流 join 场景应用
  8. 你的努力,是否符合你的预期?
  9. linux网页视频黑边,ffmpeg去除视频黑边命令
  10. php pdo setfetchmode,PDOStatement::setFetchMode