angularjs杂谈

1.MVVM的看法:我给view里面各种控件也定义一个对应的数据对象,这样,只要修改这个数据对象,view里面显示的内容就自动跟着刷新,而在view里做了任何操作,这个数据对象也跟着自动更新。

ViewModel:就是与界面(view)对应的Model。因为,数据库结构往往是不能直接跟界面控件一一对应上的,所以,需要再定义一个数据对象专门对应view上的控件。而ViewModel的职责就是把model对象封装成可以显示和接受输入的界面数据对象。

简单的说,ViewModel就是View与Model的连接器,View与Model通过ViewModel实现双向绑定。

2.动态,交互密集型。

核心功能

3.《angularjs权威教程》目录

第三章 模块 3.1参数[3.1.1name(字符串) 3.1.2require(字符串数组)]

第四章 作用域 4.1视图和$scope的世界 4.2就是html而已 4.3作用域能做什么

4.4$scope的生命周期[4.4.1 创建 4.4.2链接 4.4.3更新 4.4.4销毁] 4.5指令和作用域

第五章 控制器 5.1控制器嵌套(作用域包含作用域)

第六章 表达式 6.1解析angularjs表达式 6.2插值字符串

第七章 过滤器 7.1自定义过滤器 7.2表单验证

第八章 指令简介 8.1指令:自定义html元素和属性 8.2向指令中传递数据

第九章 内置指令 9.1基础ng属性指令[9.1.1布尔属性 9.1.2类布尔属性] 9.2在指令中使用子作用域

第十章 指令详解 10.1指令定义[10.1.1restrict(字符串) 10.1.2优先级(数值型) 10.1.3terminal(布尔型)

10.1.4template(字符串) 10.1.5templateUrl(字符串或函数)10.1.6replace(布尔型)]

10.2指令作用域[10.2.1scope参数(布尔型或对象) 10.2.2隔离作用域]

10.3绑定策略[10.3.1transclude 10.3.2controller(字符串或函数)10.3.3controllerAs(字符串)                   10.3.4require(字符串或数组)]

10.4angularjs的生命周期[10.4.1编译阶段 10.4.2compile(对象或函数) 10.4.3链接]

10.5ngModel[10.5.1自定义渲染 10.5.2属性]

10.6自定义验证

第十一章 Angularjs模块加载 11.1配置 11.2运行块

第十二章 多重视图和路由 12.1安装 12.2布局模块 12.3路由 12.4$location服务

12.5路由模式[12.5.1html5模式 12.5.2路由事件 12.5.3关于搜索引擎索引]

12.6更多关于路由的内容[12.6.1页面重新加载 12.6.2异步的地址变化]

第十三章 依赖注入 13.1推断式注入声明 13.2显示注入声明 13.3行内注入声明

13.4$injector API [13.4.1annotate()13.4.2get()13.4.3has()13.4.4instantiate                              13.4.5invoke()]

13.5ngMin [13.5.1安装 13.5.2使用ngMin 13.5.3工作原理]

第十四章 服务 14.1注册一个服务 14.2使用服务 14.3 创建服务时的设置项[14.3.1factory()14.3.2service()

14.3.3provider()14.3.4constant()14.3.5value() 14.3.6何时使用value()和constant()

14.3.7decorator()]

第十五章 同外界通信:XHR和服务器通信 15.1使用$http 15.2设置对象 15.3响应对象 15.4缓存http请求

15.5拦截器 15.6设置$httpProvider 15.7使用$resource 15.8安装

15.9应用$resource[15.9.1 基于http get方法 15.9.2基于非http get类型的方法

15.9.3$resource实例 15.9.4$resource实例是异步的 15.9.5附加属性]

15.10 自定义$resource方法  15.11$resource设置对象 15.12$resource服务

15.13使用Restangular 15.14Restangular简介 15.15安装Restangular 15.16Restangular对象简介

15.17使用Restangular[15.17.1我的http方法怎么1办 15.17.2自定义查询参数和头]

15.18设置Restangular

第十六章 XHR实践 16.1跨域和同源策略 16.2JSONP

16.3使用cors[16.3.1设置 16.3.2服务端cors支持 16.3.3简单请求 16.3.4非简单请求]

16.4 服务器端代理 16.5 使用json 16.6使用xml

16.7使用angularjs进行身份验证(16.7.1服务器端需求 16.7.2客户端身份验证)

16.8和MongoDB通信

第十七章 promise 17.1什么是promise 17.2为什么使用promise 17.3angular中的promise

17.4链式请求[17.4.1all(promise)17.4.2defer()17.4.3reject(reason)17.4.4when(value)]

第十八章 服务器通信 18.1自定义服务器 18.2安装Nodejs 18.3安装Express 18.4调用Api

18.5使用AmazonAWS的无服务器应用[18.5.1DynamoDB 18.5.2简单通知服务(SNS)

18.5.3简单队列服务(SQS,Simple Queue Service)18.5.4简单存储服务(S3)18.5.5安全令牌服务(STS)]

18.6AWSJS + Angular 18.7开始 18.8介绍  18.9安装 18.10运行 18.11用户认证/鉴权  18.12UserService

18.13迁移到AWS上 18.14AWSService 18.15 在Dynamo上开始 18.16$cacheFactory  18.17保存currentUser

18.18上传到S3 18.19处理文件上传 18.20查询Dynamo 18.21在Html显示列表 18.22出售我们的作品

18.23 使用Stripe 18.24使用Firebase的无服务应用 18.24使用Firebase和Angular的三方数据绑定

18.26从AngularFire开始 [18.26.1注册并创建一个Firebase 18.26.2包含Firebase和AngularFire库

18.26.3把Firebase作为依赖项添加 18.26.4绑定模型到FirebaseURL 18.26.5数据同步]

18.27在AngularFire中排序 18.28Firebase事件 18.29显示同步 18.30用AngularFire进行认证

18.31认证事件{18.31.1$logout() 18.31.2$cresteUser() }

18.32使用Firebase托管部署你的Angular应用{18.32.1安装Firebase工具 18.32.2部署你的web站点}

18.33 除了AngularFire之外

第十九章 测试 19.1为什么要做测试 19.2测试策略 19.3开始测试 19.4AngularJs测试的类型{19.4.1单元测试 19.4.2端到端测试}

19.5开始 19.6初始化Karma配置文件 19.7配置选项 19.8使用RequireJS

19.9Jasmine {19.9.1 细则套件 19.9.2定义一个细则} 19.10预期{19.10.1内置的匹配器 19.10.2安装和卸载}

19.11端到端的介绍{19.11.1选项输入 19.11.2重复循环元素} 19.12模拟和测试帮助函数

19.13模拟$httpBackend 19.14测试一个应用{19.14.1测试路由 19.14.2测试页面内容 19.14.3测试控制器

19.14.4测试服务和工厂 19.14.5测试过滤器 19.14.6测试模板 19.14.7测试指令}

19.15测试事件 19.16对Angular的持续集成 19.17Protractor 19.18配置 19.19配置选项 19.20编写测试

19.21测试实践{19.21.1我们的应用 19.21.2测试的策略}19.22建立我们的第一个测试

19.23测试输入框{19.23.1测试列表 19.23.2测试路由} 19.24页面对象

第二十章 事件 20.1什么是事件 20.2事件传播{20.2.1使用$emit来冒泡事件 20.2.2使用$broadcast向下传递事件}

20.3事件监听 20.4事件对象 20.5事件相关的核心服务{20.5.1核心系统的$emitted事件

20.5.2核心系统的$broadcast事件 }

第二十一章 架构 21.1目录架构 21.2模块 21.3控制器 21.4指令 21.5测试

第二十二章 Angular动画 22.1安装 22.2它是如何运作的 22.3使用CSS3过渡 22.4使用CSS3动画

22.5交错CSS过渡/动画{22.5.1交错CSS过渡 22.5.2交错CSS动画 22.5.3什么指令支持交错动画}

22.6使用JavaScript动画 22.7微调动画 22.8DOM回调事件 22.9内置指令的动画{22.9.1ngRepeat 动画

22.9.2ngView动画 22.9.3ngInclude动画 22.9.4 ngSwitch动画 22.9.5ngIf动画 22.9.6ngClass动画

22.9.7 ngShow/ngHide动画} 22.10创建自定义动画{22.10.1 addClass()22.10.2removeClass()

22.10.3enter()22.10.4leave() 22.10.5 move()} 22.11与第三方库集成{22.11.1Animate.css

22.11.2TweenMax/TweenLite}

第二十三章 digest循环he$apply 23.1$watch列表 23.2脏值检查 23.3$watch 23.4$watchColletion 23.5页面中的$digest循环

23.6$evalAsync列表 23.7$apply 23.8何时使用$apply

第二十五章 AngularJS精华扩展 25.1AngularUI 25.2安装 25.3ui-router{25.3.1安装 25.3.2事件 25.3.2$stateParams

25.3.4$urlRouterProvider 25.3.5创建一个导航程序} 25.4ui-utils{25.4.1安装 25.4.2mask 25.4.3ui-event

25.4.4ui-format

第二十六章 移动应用 26.1响应式Web应用 26.2交互{26.2.1安装 26.2.2ngTouch 26.2.3$swipe服务

26.2.4angular-gestures和多点触控手势 26.2.5安装angular-gestures 26.2.6使用angular-gesture}

26.3Cordova中的原生应用程序 26.4Cordova入门{26.4.1Cordova开发流程 26.4.2平台 26.4.3插件 26.4.4构建

26.4.5模拟和运行 26.4.6开发阶段 26.4.7Angular中的Cordova} 26.5引入Angular

26.6使用Yeoman构建{26.6.1修改Yeoman以便使用Cordova 26.6.2装配Yeoman构建 26.6.3构建移动部分

26.6.4处理引导程序}

第二十七章 本地化 27.1angular-translate 27.2安装 27.3教你的应用一种新语言 27.4多语言支持 27.5运行时切换语言

27.6加载语言 27.7angular-gettext 27.8安装 27.9 用法 27.10字符串提取 27.11翻译字符串

27.12编译新语言 27.13改变语言

第二十八章 缓存 28.1什么是缓存 28.2Angular中的缓存{28.2.1$cacheFactory 28.2.2缓存对象} 28.3$http中的缓存{

28.3.1默认的$http缓存 28.3.2自定义缓存} 28.4为$http设置默认缓存

第二十九章 安全性 29.1严格的上下文转义 29.2URL白名单 29.3URL黑名单 29.4$sceAPI{29.4.1getTrusted 29.4.2parse

29.4.3trustAs 29.4.4isEnabled} 29.5 配置$sce 29.6可信赖的上下文类型

第三十章 AngularJS和IE浏览器 30.1Ajax缓存 30.2angularJS中的SEO 30.3使Angular应用可被索引 30.4服务端{

30.4.1hashbang 30.4.2html5路由模式} 30.5服务端处理SEO的选项{30.5.1使用Node/Express中间件

30.5.2使用Apache重写URL 30.5.3使用Ngnix代理URL} 30.6获取快照 30.7使用Zombie.js获取Html快照

30.8使用grunt-html-snapshot 30.9Prerender.io  30.10<noscript>方法

第三十一章 构建Angular Chrome应用 31.1了解Chrome应用{31.1.1manifest.json 31.1.2 背景脚本 31.1.3视图}

31.2构建你的Chrome应用 31.3搭建框架 31.4manifest.json 31.5tab.html 31.6在Chrome中加载应用

31.7主模块 31.8构建主要 31.9使用Wunderground的天气API 31.10设置界面 31.11实现用户服务

31.12城市自动填充/自动完成 31.13添加区时支持

第三十二章 优化Angular应用 32.1优化什么 32.2优化$digest循环 32.3优化ng-repeat 32.4优化$digest调用

32.5优化$watch函数{32.5.1bindonce 32.5.2$watch函数的自动化} 32.6优化过滤器{32.6.1不变的数据

32.6.2过滤后的数据} 32.7页面加载优化技巧{32.7.1压缩 32.7.2利用$templateCache}

第三十三章 调试Angularjs 33.1从DOM中调试{33.1.1scope()33.1.2controller()33.1.3injector()                                            33.1.4inhertedDate()} 33.2调试器 33.3Angular Batarang {33.3.1安装Batarang 33.3.2检查模型

33.3.3检查性能 33.3.2检查依赖图表 33.3.5可视化应用}

第三十四章 下一步 34.1jqLite和jQuery 34.2了解基本工具 34.3Grunt 34.4grunt-angular-templates{34.4.1安装

34.4.2用法 34.4.3可用选项 34.4.4用法} 34.5Lineman 34.6Bower{34.6.1安装 34.6.2Bower简介 ...}

34.7Yeoman 34.8配置Angular生成器{34.8.1CoffeeScript 34.8.2安全压缩  34.8.3跳过索引}

34.9测试应用 34.10打包应用 34.11打包模板

时间: 2024-09-30 22:55:46

angularjs杂谈的相关文章

angularJs中关于ng-class的三种使用方式说明

在开发中我们通常会遇到一种需求:一个元素在不同的状态需要展现不同的样子. 而在这所谓的样子当然就是改变其css的属性,而实现能动态的改变其属性值,必然只能是更换其class属性 这里有三种方法: 第一种:通过数据的双向绑定(不推荐) 第二种:通过对象数组 第三种:通过key/value 下面简单说下这三种: 第一种:通过数据的双向绑定 实现方式: function changeClass(){   $scope.className = "change2"; } <div clas

Node.js 使用angularjs取得Nodejs http服务端返回的JSON数组示例

server.js代码: // 内置http模块,提供了http服务器和客户端功能(path模块也是内置模块,而mime是附加模块) var http=require("http"); // 创建服务器,创建HTTP服务器要调用http.createServer()函数,它只有一个参数,是个回调函数,服务器每次收到http请求后都会调用这个回调函数.服务器每收到一条http请求,都会用新的request和response对象触发请求函数. var server=http.createS

Bootstrap + AngularJS+ Ashx + SQL Server/MySQL

去年年底12月,为适应移动端浏览需求,花了1个月时间学习Bootstrap,并将公司ASP网站重构成ASP.NET. 当时采取的网站架构: Bootstrap + jQuery + Ashx + SQL Server 时间紧,没人带,只能硬着头皮,最后如期完成,但是也遗留了几个问题. 问题: 1.页面查询条件太复杂,太多的checkbox,jQuery操作DOM虽然方便,但是组合成json提交给后端还是比较麻烦,有没有天然支持json的前端框架或者脚本语言? html控件做的任何修改,都自动保存

一招制敌 - 玩转 AngularJS 指令的 Scope (作用域),讲得特别好

学习了AngularJS挺长时间,最近再次回首看看指令这部分的时候,觉得比自己刚开始学习的时候理解的更加深入了,尤其是指令的作用域这部分. 步入正题: 每当一个指令被创建的时候,都会有这样一个选择,是继承自己的父作用域(一般是外部的Controller提供的作用域或者根作用域($rootScope)),还是创建一个新的自己的作用域,当然AngularJS为我们指令的scope参数提供了三种选择,分别是:false,true,{}:默认情况下是false. scope = false 首先我们来看

前端angularJS利用directive实现移动端自定义软键盘的方法

最近公司项目的需求上要求我们iPad项目上一些需要输入数字的地方用我们自定义的软键盘而不是移动端设备自带的键盘,刚接到需求有点懵,因为之前没有做过,后来理了一下思路发现这东西也就那样.先看一下实现之后的效果: 实现的效果就是当点击页面中需要弹出软键盘的时候软键盘弹出,浮在页面的中间,和模态框一样的效果,可以在软键盘中输入任何数字,附带的功能有小数点.退格.清空.确定等功能.当在键盘上点击数字的时候页面中的表单中实时的添加对应的数字,上图中可以看到. 产品经理那边给的原因是iPad屏幕本来就小,如

AngularJs自定义过滤器filter

AngularJs自带有很多过滤器,现在Insus.NET演示一个自定义的过滤器,如实现一个数据的平方. 本演示是在ASP.NET MVC环境中进行. 创建一个app: 创建一个控制器: 接下来是重点,创建一个过滤器,例子中的过滤器是实现一个数值的平方. 以上的所指的App,控制器和过滤器均是依Angularjs而言. 下面是ASP.NET MVC的视图,实现数据过滤: 程序运行结果:

AngularJS:directive自定义的指令

除了 AngularJS 内置的指令外,我们还可以创建自定义指令. 你可以使用 .directive 函数来添加自定义的指令. 要调用自定义指令,HTML 元素上需要添加自定义指令名. 使用驼峰法来命名一个指令, runoobDirective, 但在使用它时需要以 - 分割, runoob-directive: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script

杂谈 - 现阶段互联网应用的白话

一晃,一个年头又过去了. 历时,入门互联网行业已然三年之多.从一个 hello word 开始一直磨练至今,宝刀未见锋锐(好像有点飘,程序员不应该这样的...). 如下列举近几年经手或常听说的软件. 企业级应用软件: 1.常规行业软件如OA/ERP/CRM等,模式相对已经成熟,技术层实现模块需求即可,大同小异. 2.特定行业软件如多商户管理系统/物业软件系统/金融类软件系统等,需要特定场合,特定业务无缝衔接,这样才能最大发挥软件产品的作用. 3.教育院校类软件系统,多以学生为主,校园通知或知识分

Angularjs[补21] - 显示注入,隐示注入

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> </head> <body> <div ng-app="myApp"> <div ng-controller="secondController"> &