前端MVC框架之 Angular_mvcagen-快快SEO

前端MVC框架之 Angular

1 篇文章 0 订阅

一、什么是Angular

  • jQuery,它属于一种类库(一系列函数的集合),以DOM为驱动核心;而Angular是一种 MVC 的前端框架,则是前端框架,以数据和逻辑为驱动核心,它有着诸多特性,最重要的是:模块化,双向数据绑定,语义化标签,依赖注入等。
  • MVC 开发模式:model(模型),view(视图),controller(控制器)。

    二、模块化

    最大程度实现代码复用
    定义应用
  • 为HTML标签添加 ng-app 属性,表明整个文档都是应用,也可指定标签添加,该标签包裹的所有内容都是应用的一部分(++注:没有关联相应模块,一定不能赋值;但如果关联相应模块,必须赋值++)

    定义模块
  • 提供一个全局对象Angular,用angular.module(参数1,参数2)方法定义模块,输出一个返回值。
  • 第一个参数:跟ng-app的值一致;
  • 第二个参数:数组。表明该模块依赖其他模块,依赖不存在则写 [ ];

定义控制器(view和model的桥梁)
  • 定义模块输出的返回值.controller(参数1,参数2)。
  • 第一个参数:控制器名称(++确定与view的关联++,在HTML标签添加ng-controller:控制器名称);
  • 第二个参数:为一个数组,除了最后一个单元是函数,其余都是字符串,该参数表明控制器的依赖关系。

三、指令

  • 常用内置指令

    1.ng-app 指定应用根元素,至少有一个元素指定了此属性。

    2.ng-controller 指定控制器

    3.ng-show 控制元素是否显示,true显示、false不显示(通过display:none/block来控制)

    4.ng-hide 控制元素是否隐藏,true隐藏、false不隐藏

    5.ng-if 控制元素是否“存在”,true存在、false不存在(与ng-show区别:当为false的时候,连同整个DOM节点都不存在)

    6.ng-src 增强图片路径

    7.ng-href增强地址

    8.ng-class 控制类名 (后面可接对象,如ng-class="{done: true}")

    9.ng-include 引入模板

    10.ng-disabled 表单禁用

    11.ng-readonly 表单只读

    12.ng-checked 单/复选框表单选中

    13.ng-selected 下拉框表单选中

  • 自定义指令
  • directive

四、数据绑定

单向绑定
  • 只能是模型数据向视图传递(类似artTemplate模板引擎的工作方式)
  • 相关指令:
    • 通过 {{}} 或者 ng-bind 来实现模型数据向视图模板的绑定,模型数据由一个内置服务$scope提供,它是个空对象,通过为这个对象添加属性或方法,便可以在相应的视图模板里被访问。
    • 这里的 {{}} 是 ng-bind 的简写形式,区别在于通过 {{}} 绑定数据时会出现闪屏,添加添加 ng-cloak 也可以解决“闪烁”现象。

      双向绑定
  • 视图 -->传到 模型上 -->再传回视图
  • 相关指令:
    • ng-model
  • 举一个小例子:

    <body ng-app>
    <input type="text" ng-model='mesg'>
    <h1>{{mesg}}</h1>
    </body>
    初始化模型(既初始化$scope)
  • ng-init (很少用)。

    事件处理
  • 无需显式的获取DOM元素便可添加事件
  • 在原有事件前面添加前缀“ng”,然后以属性的形式添加到HTML便签中,例如:ng-click

    数据处理
  • 相关指令:
    • ng-repeat: 可以将数组或对象数据迭代到视图模板中
    • ng-switch 和 ng-switch-when 配合使用

      五、作用域

  • 每个controller下的$scope产生不同的作用域
  • 根作用域:ng-app所在的标签内

    六、过滤器

  • 内置过滤器
    • currency[货币] 将数值格式化为货币格式
    • date 日期格式化,年(y)、月(M)、日(d)、星期(EEEE/EEE)、时(H/h)、分(m)、秒(s)、毫秒(.sss),也可以组合到一起使用。
    • filter 在给定数组中选择满足条件的一个子集,并返回一个新数组,其条件可以是一个字符串、对象、函数
    • json 将Javascrip对象转成JSON字符串。
    • limitTo 取出字符串或数组的前(正数)几位或后(负数)几位
    • lowercase 将文本转换成小写格式
    • uppercase 将文本转换成大写格式
    • number 数字格式化,可控制小位位数
    • orderBy 对数组进行排序,第2个参数是布尔值可控制方向(正序或倒序)
  • 自定义过滤器
    • 通过模块对象实例提供的filter方法自定义过滤器
  • 总结
    • 竖线调用,冒号传值。

      七、依赖注入

  • 通过注入的方式解决依赖问题,通过回调函数的参数来实现。
  • 常见AngularJS内置服务:$http、$http、$location、$timeout、$rootScope
  • 分类:
    • 行类式
    • 推断式(不建议使用,代码压缩后,参数无法找到,无法找到依赖)

      八、服务

  • 内置服务
    • $Timeout 和 $interval与原生JS区别,不需要每次手动开启脏值检查,即$scope.$digest()
    • 是对原生JS的封装
    • 常见内置服务:
      • $http 向服务器端发起异步请求(注意前后端言行(接收/发送)一致)
        • post的请求方式:对应数据用data,
        • post要有个请求头headers,这里headers的值用{}括起来,angularJS默认是'application/json'。发送请求头有两种格式来传送数据(注意:php中$_POST[ ]只能接收formData格式数据的application/x-www-form-urlencoded这一种格式的数据)
          • 'Content-Type', 'application/x-www-form-urlencoded',该格式发送的参数为字符串key=value格式,例如"username=zhangsan".
          • 'Content-Type', 'application/json',该格式发送的参数为json格式,例如{"username":"zhangsan"}
        • get的请求方式:对应数据用params,ps:服务器端接收$_GET[], 在success中打印$log.info(ret)可以检查数据是否传到服务器。
        • 1.5.8之前的版本,回调函数用success(),error();1.6版本之后的版本用then()
        • 跨域
          • jsonp 用一句话概括,前端发送一个事先定义好的函数名给服务端,服务端接收这个函数名并拼凑“()”,并返回;前端就接收了一个函数的调用
          • method: "jsonp" ,params:{ callback:"JSON_CALLBACK" },其中JSON_CALLBACK为临时定义的函数名发给服务端,让服务端替换(注:1.6之后不需写这个);在jquery中,自动帮你传了,所以不用这一步。
      • $log 打印调试信息($log.log()、$log.error()、$log.warn()、$log.debug()、$log.info())
      • $filter 在控制器中格式化数据
      • $Timeout 和 $interval
  • 自定义服务

    九、模块加载

  • 配置块
    • 通过config来实现对服务的配置(也可以更改一些服务的默认设置),AngularJS绝大多数服务都有对应的provider。例如:$route 对应的$routeProvider(配置路由)
  • 运行块
    • 特殊:run方法 还是最先执行的。 案例:比如验证用户是否登录,未登录则不允许进行任何其它操作。

      十、路由

  • 功能:一个应用由若干个个视图组成,然后呢,根据不同的业务逻辑展示不同的视图给用户。
  • 理解
    • SPA:Single Page Application 单页面应用
    • 链接使用锚点
    • 单一页面原理:单页面通过hashchange事件监听锚点的变化,实现不同锚点准备找到对应的视图
  • 路由: AngularJS基于单一页面原理进行封装,将锚点变化封装成路由,这也是与后端路由的根本区别
  • 路由的使用:
    • 需引入angular-route.js文件
    • 实例化模块,传入依赖(路由名称为:ngRoute)

    • 配置路由(config、$routeProvider、when(条件))

    • 布局模板(用ng-view指令,路由匹配的视图会渲染到该区域)

  • 路由的参数:
    • 两种方法匹配路由:when和otherwise,when可以调用多次。otherwise作为when的补充,参数只有一个。
    • when有两个参数
      • 参数1:是个字符串,代表当前url的hash值;例如:“/:type”
      • 参数2:是一个对象,配置当前路由参数,如视图、控制器
        • template:字符串形式视图模板
        • templateUrl:引入外部视图模板
        • controller:视图模板所属控制器,作用之一:通过http请求向后台要数据
        • redirectTo:跳转到其他路由 例如:“/2”;
    • 获取路由参数,在控制器中注入$routeParams,可以传递参数给后台或其他。

xiyan_yuan CSDN认证博客专家 CSDN认证企业博客
码龄7年 暂无认证
10
原创
35万+
周排名
34万+
总排名
2万+
访问
等级
432
积分
3
粉丝
3
获赞
2
评论
18
收藏
私信

分类专栏

JTable中嵌套JButton并加入JButton的事件处理

.H H: 你个蠢b直接搬别人的文章放上来,我真的服了

  • 闭包 arguments 属性的使用(闭包)

    xiyan_yuan: 支持一下,嘻嘻嘻

  • 目录

    js
    17篇
  • java
    6篇
  • canvas
    1篇
  • html5
    2篇
  • 监听事件
    1篇
  • css
    3篇
  • ajax
    5篇
  • 闭包
    1篇
  • json
    1篇
  • jsonp
    2篇
  • css3
    3篇
  • css3动画
    1篇
  • 拖拽
    1篇
  • 正则
    1篇
  • angular
    1篇
  • IE
    1篇
  • IE 兼容
    2篇
  • 过渡
    1篇
  • 为什么被折叠? 到【灌水乐园】发言
    前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值

    相关内容推荐

    王通seo赚钱秘笈2015seo石家庄优化seo廊坊seo推广420seo沙伯基础邯郸网站seodiscuz seo 优化徐英young seo床戏seo培训心得seo实战培训哈尔滨武汉SEO优化多少钱深圳关键词营销seo公司php开发seoseo蜘蛛侠破解版郑州seo专业培训班SEO排名工具简笔画泸西优化seoseo招商平台seo优化做什么希望免费seoseo专员kpi评估seo如何快广州SEO公司文化seo关键字查询seo网站优化建设seo软件大全seo赚钱秘笈 王通佛山seo网站seo外贸 seo 优化传媒seo渠道诚信通seo优化seo优化用户体验seo黑帽购买seo1家义seo好的教程淄川seo武汉网站seo优化公司蜜芽seoseo引擎优化外包哪家好多语言网站seoseo 列表页seo网络优化视频教程seo优化时间vue怎么做seoSEO策略运营是什么ftp seo关键词seo怎么优化赣榆优化seo项城seo优化价格多少seo推广什么意思神马搜索seo优化seo优化价格表济南专业seoseo 高级seo 上海商网站seoseo百度seo排名优化软件有关seo的书seo绩效考核方案广州SEO公司前台外贸优化seo昆山seo哪家好找优化seoseo上市公司深圳学习seoseo所有指令seo行业网seo ha jun video泰州优化seoseo转行做什么好分析百度关键词的seo工具网站seo数据统计表企业seo优化方案seo forceseo闪电精灵怎么样网页 seoseo 静态旅游行业seo营销淡漠流年seo代码优化seo修改关键词对seo南京seo网站优化公司php seo查询网络seo优化外包价格网站的seo优化费用百度seo检测seo网站建设教程SEO书架客厅代刷seo武汉seo优化服务西安seo待遇seo技术专利泰州专业seoseo属于什么营销南通网站seo外包seo人员组成seo手机工具seo推广介绍seo顾问百度百科 seo穿顶seo阿里云 seo北京seo培训实战htm seo上海百度seo排名网站目录seo锦妍seoseo外包服务费用刷搜狗seo软件微信 seo黑帽seo网站为什么要做 seo 优化淘宝的seo是什么意思seo专员职责怎么网站seo温州市seo郴州百竞seoseo关键词格式柯南seo视频常州seo朱能源seo需要学习什么课程湛江网站seo微博seo推广seo全套课程seo顾问屯留优化seoplatinum seo pack中文seo542免费seo关键词优化seo公司外包seo教程广州SEO公司形象西安招聘seo搜索引擎优化 seo孙婉 won seo织梦 seo优化淘宝seo有用吗seo关键词快速排名哪家好seo关键词排名优化工具站外 seoSEO书架改造seo培训班费用做seo搜索优化怎么样蚂蚁seo外链工具福州福清seo昊天seoseo如何提高排名seo培训班有哪些关键词seo优化排名推荐搜狗流量seoSEO获客SEO目录排版百度官方seo关键词seo自然排名优化商城 seo关键词推广价格乐云seo知名SEO网站seo兵书 搜索引擎优化手册如何通过seo赚钱SEO书架儿童seo万词武汉 seo黑帽seo技术论坛seo外链专员招聘SEO文案高质量草根seo技术博客seo用人单位抖音seo获客长沙SEO优化营商福清网页seo烟台seo整站优化上海 seoSEO微时seo页面搭建查词人seo江西seo教程晋宁优化seoseo软件代理seo公司google seo是什么mi ceo seo玩法变了 淘宝seo pdf益阳百竞seo肥乡优化seoseo 移动优化郑州seo培训王彬济南seo优化ahuaseoSEO站长联盟手游seo 代码北京seo 方法关键词seo如何优化seo1最新淘宝seo思维导图广西seo公司seo优化销售话术南通市seo外贸seo 论坛网站排名优化推荐乐云seoseo排名快速上升成都seo工资seo关键词推广价格简清seoseo关键词字数seo项目流程

    合作伙伴

    快快SEO

    www.weiwin.cc
    seo.07yue.com
    www.weiwin.cc
    www.pifajia.net.cn
    seo.urkeji.com
    www.imcrd.com
    www.weiwin.cc
    www.haowangjiao.cc
    www.wangluohr.cn
    www.bjdongwei.cn
    www.snlanyards.com
    www.xm5656.cn
    top1.urkeji.com
    www.07yue.com
    www.wangluohr.cn
    baidu.07yue.com
    www.bjdongwei.cn
    www.xm5656.cn
    www.andmedia.cn
    www.conductive-powder.com