一直用惯jquery,初用Angularjs的初段时间,需要先了解一下她的类MVC思想。

初学时几个比较基本的概念:

1.客户端模板

2. Model View Controller (MVC)

3. 数据绑定

4.依赖注入和指令等(有相当多的学习内容)

一般的web页面,我们比较通常的做法是:

1.在服务器端把Html和数据装配并混合起来,然后把生产的完整的Html页面发送到浏览器端

2.ajax应用中几乎也是做同样的事情。我们最经常做的一个动作,大概就是在获取到数据之后开始拼凑html.然后填充到页面上。

Angularjs:数据和模板(可以理解为要呈现的Html样式)是分开的,服务器会把这两个东西发送到浏览器,然后他们自己在客户端进行装配。

两者相比:

1.html里的class或者ID(事件写法)

2.注意$scope.

MVC

核心理念:我们应该把管理数据的代码(model)、应用逻辑层代码(controller)、向用户展示数据的代码(view)清晰地分开。三者互动关系如下:

1. 视图从模型中获取数据,展示给用户。

2. 控制器修改模型中的数据。(鼠标点击或者键盘输入)

3.模型通知视图数据已经发生了改变,视图刷新。

Ajs中:视图就是我们的DOM,控制器就是Javascript类,模型数据则存储在对象中。(数据绑定语法)

mvc思想个人感受:

论模型的重要性:个人觉得这大概是在使用ajs和jquery中体验到的最大的区别。 jquery中是没有这一层的,因为他的数据都是直接去找html元素的,然后绑定上去,这也是我们为什么需要大量id的原因。jquery是强依赖页面元素的,展示的时候需要找到去找页面元素绑定,提交的时候需要去遍历页面元素来获取当前的交互结果,然后更新到服务器。

而ajs 是模型驱动的。视图中展现的是模型,被存储起来的内容是模型,几乎所有的一切都是模型。应用开发之前,最需要花时间应该是思考一下你的模型结构,你的模型 中的属性是什么内容,怎么绑定到页面上,视图是根据模型自动刷新的,所以模型是你应用中的焦点。其实和我们平时定义面向对象里面的类的做法很相似。

控制器负责业务逻辑:在模型上可以执行什么样的操作、视图需要模型上哪些信息,如何转换模型以获取想要的信息,表单校验任务等等,这些事情都是由控制器负责的。

模板:代表的是展现形式,例如:过滤来格式化数据、给应用提供样式,并且判断何时以及怎么样展示一些原始(显示还是隐藏?鼠标划过时效果)

其他相关概念的提及:服务,路由等等。

AngularJS 初用总结的更多相关文章

  1. angularJs初体验,实现双向数据绑定!使用体会:比较爽

    使用初体验:ng 双向数据绑定: 最简单的双向数据绑定:(使用默认模块控制) <body ng-app> <input type="text" ng-model= ...

  2. AngularJS 初印象------对比 Asp.net MVC

    之前就早耳闻前端MVC的一些框架,微软自家的Knockout.js,google家的AngularJs,还有Backone.但未曾了解,也不解为什么前端也要这么分.这两天看了AngularJs的官方教 ...

  3. AngularJS初体验

    最近突然发现,Coding.net真是一个神奇的网站.这各网站90%的请求都是通过ajax完成的.可以发现,不管你点任何链接,网页都不会刷新,点击浏览器的返回或前进按钮也是这样,打开chrome的开发 ...

  4. MVC + AngularJS 初体验(实现表单操作)

    AngularJS AngularJS 通过新的属性和表达式扩展了 HTML. AngularJS 可以构建一个单一页面应用程序(SPAs:Single Page Applications). Ang ...

  5. AngularJS初接触

    todo.json [ { "action": "Buy Flowers", "done": false }, { "action ...

  6. AngularJS and Asp.net MVC

    AngularJS 初印象------对比 Asp.net MVC 之前就早耳闻前端MVC的一些框架,微软自家的Knockout.js,google家的AngularJs,还有Backone.但未曾了 ...

  7. bootstrap-paginator 分页插件笔记

    [MVC]bootstrap-paginator 分页插件笔记   bootstrap-paginator基于bootstrap框架,使用起来非常简单.官网:http://harttle.github ...

  8. AngularJS路由系列(3)-- UI-Router初体验

    本系列探寻AngularJS的路由机制,在WebStorm下开发. AngularJS路由系列包括: 1.AngularJS路由系列(1)--基本路由配置2.AngularJS路由系列(2)--刷新. ...

  9. day21—AngularJS学习初体验

    转行学开发,代码100天——2018-04-06 今天按照学习计划安排,开始AngularJS的学习. 关于AngularJS,在菜鸟教程上这样介绍 好吧,Angular学习起来非常简单,哈哈,现在就 ...

随机推荐

  1. 让easyui 的alert 消息框中的确定按钮支持空格键

    var _messager = $.extend({},$.messager);$.extend($.messager,{ alert:function(title, msg, icon, fn){ ...

  2. ReactNative官方中文文档0.21

    整理了一份ReactNative0.21中文文档,提供给需要的reactnative爱好者.ReactNative0.21中文文档.chm  百度盘下载:ReactNative0.21中文文档 来源: ...

  3. 使用jQuery加载script脚本

    原文链接: Loading Scripts with jQuery JavaScript loaders加载器简单强大而又非常有用.我在博客上介绍过其中一些,例如 curljs  和 LABjs ,也 ...

  4. JSP基础学习

    JQuery教程: http://www.w3school.com.cn/jquery/ HTTP协议的 http://www.w3.org/Protocols/rfc2616/rfc2616.htm ...

  5. PRINCE2七大原则

    我们先来回顾一下,PRINCE2七大原则分别是持续的业务验证,经验学习,角色与责任,按阶段管理,例外管理,关注产品,剪裁. 第三个原则:明确定义的角色和职责. 项目离不开人员,错误的人来了,合适的人没 ...

  6. 在php中验证复选框

    PHP接收多个同名复选框信息不像ASP那样自动转换成为数组,这给使用带来了一定不便.但是还是有解决办法的,就是利用javascript做一下预处理.多个同名复选框在javascript中还是以数组的形 ...

  7. bzoj4282慎二的随机数列

    海带头又上线了QwQ~ 这是一个奇怪的lis问题 显然一定存在一种最优答案使所有辨认不清的数都在答案中. [为什么呢]因为你完全可以用一个'N'来替换一个'K'啊QwQ~ 那么在选完所有'N'之后,一 ...

  8. <<< struts 的一系列介绍

    struts有什么用? 以前使用servlet开发应用系统的人深深感受到在java代码中嵌入大量html代码是一件非常痛苦的事,于是sun推出了JSP,解决了java代码中嵌入html代码的问题.但是 ...

  9. 挣值管理(PV、EV、AC、SV、CV、SPI、CPI) 记忆

    挣值管理法中的PV.EV.AC.SV.CV.SPI.CPI这些英文简写相信把大家都搞得晕头转向的.在挣值管理法中,需要记忆理解的有三个参数:PV.AC.EV.     PV:计划值,在即定时间点前计划 ...

  10. Google Map API V3开发(5)

    Google Map API V3开发(1) Google Map API V3开发(2) Google Map API V3开发(3) Google Map API V3开发(4) Google M ...