AngularJS_01之基础概述、设计原则及MVC设计模式
1、AngularJS:
开源的JS框架,用来开发单一页面应用,以及数据操作频繁的场景;
2、设计原则:
①YAGNI原则:You Aren't Gonna Need It!
不要写不需要的代码!
②KISS原则:Keep It Simple and Stupid!
代码保持简洁和具有表现力!
——语义化标记、注释、变量或者方法的命名、减少嵌套;
③DRY原则:Don't Repeat Yourself!
模块的封装!
——提高代码复用率,降低测试难度方便后期的迭代和维护;
④high cohesion low coupling:
高内聚低耦合
内聚:一个组件内部不同组成部分之间的关系;
耦合:不同组件之间的关系;
⑤SRP原则:Single Responsibility Principle!
单一责任原则!
⑥OCP原则:Open Closed Principle!
开闭原则!
⑦LCP原则:
最少知识原则!
3、设计模式:
①创建型模式——五种:
工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式;
②结构型模式——七种:
适配器模式、装饰器模式、代理模式、外观模式、、桥接模式、组合模式、享元模式;
③行为模式——十一种:
策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式;
4、MVC设计模式——组合型设计模式:
①M——model——模型数据;V——view——html视图;C——controller——控制器;
view接收用户操作,然后通知controller(控制器)中对应的方法,对model(数据)进行操作,反过来更新view(视图);
5、AngularJS:
①开源的基于MVC的JS框架,用于以数据操作为主的SPA应用,其四大特征方便数据处理以及模块方便实现SPA应用;
②四大特征:
a、采用MVC的设计模式:
符合当前互联网的发展趋势——职责的细分;
模块化开发——提高代码复用率,降低测试难度,维护方便;
b、双向数据绑定:
AngularJS区别于其他框架的重要特性;
c、依赖注入:
通过注入某些服务或对象,直接调用;
d、模块化设计:
AngularJS框架本身就符合模块化设计,使用框架结合模块、控制器、服务等来实现模块化开发;
③使用:
基础语法:
{{expression}}:可执行括号中的表达式,将结果输出到innerHTML中;
ng-app:自动载入并启动ng应用;
ng-init:初始化数据(变量、对象、数组...);
* ngApp——用来启动ng应用,同时指定angular应用的作用范围,出了范围ng表达式指令无法被执行,且只允许调用ngApp指令一次;
ng常用指令:
ngApp、ngInit、ng-Bind、ngRepeat(让HTML支持循环)、ngIf(让HTML支持选择/判断)、ngShow(true为显示)、ngHide(true为隐藏);
4、ng的MVC使用:
①声明模块:
var app=angular.module('myApp',['ng']);
②注册模块:
ngApp指令:ng-app="myApp";
③声明控制器:
app.controller('myCtrl',function(){});
④使用控制器:
ngController指令:ng-controller="myCtrl";
⑤在控制器的回调函数中,注入$scope对象,指定模型数据:$scope.变量=值;
⑥显示:
{{}}——ng指令:
$scope作用域控制对象,将模型数据和视图建立联系;
初始化数据——ngInit:
$scope对象;
⑦指令:
<ANY ng-XX=''>
<ANY ng-init="变量名=值;变量名=值..."></ANY>——允许声明变量,双向绑定;
<ANY ng-bind="表达式"></ANY>——将指定的表达式的值输出为当前元素的innerHTML;
<ANY ng-repeat="临时变量名 in 对象/数组"></ANY>——为HTML添加循环功能;
<ANY ng-repeat="(下标变量名,值变量名) in 对象/数组"></ANY>——为HTML添加循环功能;
<ANY ng-if="表达式"></ANY>——为HTML添加选择功能;
ng-click、ng-dbclick、ng-focus、ng-blur;
⑧注意:
定义模型数据,必须注入$scope;
ng-controller所在的标签内部的作用范围,才能识别控制器所声明的变量、方法;
AngularJS_01之基础概述、设计原则及MVC设计模式的更多相关文章
- java 28 - 1 设计模式 之 面向对象思想设计原则和模版设计模式概述
在之前的java 23 中,了解过设计模式的单例模式和工厂模式.在这里,介绍下设计模式 面向对象思想设计原则 在实际的开发中,我们要想更深入的了解面向对象思想,就必须熟悉前人总结过的面向对象的思想的设 ...
- 面向对象设计思想和MVC设计模式
虽然之前学习Java时有接触过面向对象的设计思想,但因当时Java没学好.所以导致这两天讲php的面向对象设计时,感到没有头绪,这也反应了我练习少和逻辑能力的不足.而MVC设计思想 面向对象就是要将系 ...
- 面向对象程序的设计原则--Head First 设计模式笔记
一.找出应用中可能需要变化的地方,把它们独立出来,不要和那些不需要变化的代码混在一起. 把会变化的部分取出并“封装”起来,好让其他部分不会受到影响.这样,代码变化引起的不经意后果变少,系统变得更有弹性 ...
- Unity3D设计原则
原则1:单一职责 原则2:里氏替换原则(子类扩展但不改变父类功能) 原则3:依赖倒置原则 原则4:接口隔离原则 原则5:迪米特法则(最少知道原则) 原则6:开闭原则 原则1:单一职责原则 说到单一职责 ...
- 连载:面向对象的葵花宝典:思考、技巧与实践(39) - 设计原则 vs 设计模式
它的设计原则,和设计模式,是否该用它? ============================================================================= 在& ...
- JAVA设计模式总结之六大设计原则
从今年的七月份开始学习设计模式到9月底,设计模式全部学完了,在学习期间,总共过了两篇:第一篇看完设计模式后,感觉只是脑子里面有印象但无法言语.于是决定在看一篇,到9月份第二篇设计模式总于看完了,这一篇 ...
- 设计原则:开-闭原则(Open-Closed Principle, OCP)
开-闭原则就是软件实体应当对扩展开放,对修改关闭.(Software entities should be open for extension,but closed for modification ...
- Java设计原则—开闭原则(转)
原文出自:http://www.cnblogs.com/muzongyan/archive/2010/08/05/1793454.html 开闭原则(Open Closed Principle)是Ja ...
- Java设计模式的7种设计原则还有很多人不知道
前言 其实没有设计模式我们也能完成开发工作.但是为什么需要设计模式呢?让你看起来很牛,没错这个算一个.让你的代码层次感分明,可读性强而且容易维护.让你像我一样有更多的摸鱼划水时间. 可能有人说我一个类 ...
随机推荐
- 阿里云直播 C# SDK 如何使用
阿里云直播SDK的坑 1.直播云没有单独的SDK,直播部分被封装在CDN的相关SDK当中. 2.针对SDK,没有相关Demo. 3.针对SDK,没有相关的文档说明. 4.针对SDK的说明,官网上的说明 ...
- 前端框架 EasyUI (1)熟悉一下EasyUI
jQuery EasyUI 官方网站 http://www.jeasyui.com/ .去年新开了个中文网 http://www.jeasyui.net/,不知道是不是官方的,不过看着挺像样.但是,广 ...
- Win10 IIS本地部署MVC网站时不能运行?
异常处理汇总-服 务 器 http://www.cnblogs.com/dunitian/p/4522983.html 部署后出现这个错误: 打开文件目录后发现是可以看见目录的,静态页面也是可以打开的 ...
- 【翻译】Awesome R资源大全中文版来了,全球最火的R工具包一网打尽,超过300+工具,还在等什么?
0.前言 虽然很早就知道R被微软收购,也很早知道R在统计分析处理方面很强大,开始一直没有行动过...直到 直到12月初在微软技术大会,看到我软的工程师演示R的使用,我就震惊了,然后最近在网上到处了解和 ...
- # PHP - 使用PHPMailer发邮件
PHPMailer支持多种邮件发送方式,使用起来非常简单 1.下载PHPMailer https://github.com/PHPMailer/PHPMailer,下载完成加压后, 把下边的两个文件复 ...
- AI人工智能系列随笔:syntaxnet 初探(1)
人工智能是 最近的一个比较火的名词,相信大家对于阿尔法狗都不陌生吧?其实我对人工智能以前也是非常抵触的,因为我认为机器人会取代人类,成为地球乃至宇宙的霸主,但是人工智能带给我的这种冲击,我个人感觉是欲 ...
- css常用hack
原文地址:css常用hack 突然想起今天早上在CNZZ看到的统计数据,使用IE6.7的用户比例还真多,看到之后我的心都碎了.微软都放弃了为毛还有这么多人不死心? 所以说,IE下的兼容还是得做的. – ...
- 工行ICBC_WAPB_B2C支付接口
一. 前期准备 手机银行(WAP)B2C在线支付接口说明V1.0.0.6.doc 手机银行移动生活商户及门户网站js接口API.doc 支付组件ICBCEBankUtil.dll和infosecapi ...
- 第六代智能英特尔® 酷睿™ 处理器图形 API 开发人员指南
欢迎查看第六代智能英特尔® 酷睿™ 处理器图形 API 开发人员指南,该处理器可为开发人员和最终用户提供领先的 CPU 和图形性能增强.各种新特性和功能以及显著提高的性能. 本指南旨在帮助软件开发人员 ...
- 类型转换器(InitBinder 初始化绑定器)
单日期格式 导入jar包 创建FirstController.java @Controller public class FirstController { /** * @param binder * ...