导航:首页 > 编程语言 > angularjs翻译文件缓存

angularjs翻译文件缓存

发布时间:2025-07-20 06:55:35

⑴ 设计模式js阮一峰

有面向对象基础自学前端想达到找工作的水平要多长时间需要看哪些书呢

客观的讲自学的话还是要看你自己的毅力和恒信,这个是最重要的,其次是学习的方法和方向。

首先说网站前端在目前来说需求还是很大的,但是需要的不是初级的前端而是高级前端,因为一般学习计算机的人自己学几个月就能到初级的水平,而高级前端是没有那么容易的,你说的面向对象思想是一个很好的思想,不只是纯编程用,现在网站前端也需要面向对象思想的指导。

1、关于学习时间

如果自己有毅力恒信和充足的时间来自学,加上正确的方法和方向,一般需要1年左右的时间的可以勉强到中级前端的水平,首先明确中级前端不只是些css代码,而是对javaScript有深入的了解,且使用JavaScript来解决前端中的一些问题和优化前端页面。补充一下从入门到精通的大致流程:html、css2(深入了解两者的兼容性及解决主流浏览器的兼容性问题)——javascript知识(了解其简单的框架或者类库如jQuery等)——javascript高级知识(了解一些深入的JavaScript知识和其一些闭缺高级框架如angularjs等)——移动端页面的开发html5+css3(同时要学习一些移动端的前端框架和JavaScript框架)——可以发webapp(精通js和其相关的框架且懂一些安卓或者ios知识)。当我们到第三个阶段或者第四个阶段就是可以算中级的前端的了。

2、关于学习的方法和推荐的书

首先说现在网上的资源是相当的丰富的,我们完全可以下载一些视频或者其他的资源惊醒学习,关于推荐的书,个人推荐基本就自己感觉非常不错的书和一些网上评价宴世不错的书,都是关于JavaScript的。

入门级,也适合想掌握一些前端技能的非前端工程师

JavaScriptDom编程艺术

成为一名合格的前端工程师

JavaScript高级程序设计

精通JavaScript

更优秀的代码,更优良的设计JavaScript语言精粹

JavaScript设计模式

同时建议看国内知名大牛的博客,如王福朋、阮一峰等,其博客上有大师门对晌态肢前端深入的理解。

为什么昨天阮一峰老师发布全栈工程师资料中主要学习react和node,js

JavaScript是一种(最好的)编程语言,主要作为前端开发中用来增加网页的动态功能。

NodeJs是基于JavaScript的,可以做为后台开发的语言.提供了很多系统级的API,如文件派斗贺操作、网络编程等.用事件驱动,异步编程,主要尘派是为后台网络服务设计。

ReactJS为Facebook开发的,更多的像一个JS的库.主要是在前端Web开发中,对MVC中的V进销烂行操作。

ReactNative它基于开源框架ReacJS,并可用来开发iOS和Android原生应用,主要为移动端服务。

GitHub上有哪些值得推荐的开源电子书

语言无关类

操作系统

鸟哥的Linux私房菜(简体)

Linux系统高级编程

TheLinuxCommandLine(中英文版)

Linux设备驱动(第三版)

深入分析Linux内核源码

UNIXTOOLBOX

Docker中文指南

Docker——从入门到实践

FreeRADIUS新手入门

Mac开发配置手册

FreeBSD使用手册

Linux命令行(中文版)

智能系统

一步步搭建物联网系统

web服务器

Nginx开发从入门到精通(淘宝团队出品)

版本控制

Git教程(本文由?@廖雪峰创作,如果觉得本教程对您有帮助,可以去?iTunes购买)

git–简易指南

猴子都能懂的GIT入门

Git参考手册

ProGit

GitMagic

GotGitHub

GitCommunityBook中文版

Mercurial使用教程

HgInit(中文版)

沉浸式学Git

Git-Cheat-Sheet(感谢@flyhigher139翻译了中文版)

GitHub秘籍

NoSQL

NoSQL数据库笔谈(PDF)

Redis设计与实现

Redis命令参考

带有详细注释的Redis3.0代码

带有详细注释的Redis2.6代码

TheLittleMongoDBBook

TheLittleRedisBook

Neo4j简体中文手册v1.8

Neo4j.rb中文资源

MySQL

MySQL索引背后的数据结构及算法原理

项目相关

持续集成(第二版)(译言网)

让开发自动化系列专栏

追求代码质量

selenium中文文档

Joel谈软件

约耳谈软体(JoelonSoftware)

Web

关于浏览器和网络的20项须知

前端知识体系

浏览器开发工具的秘密

Chrome开发者工具中文手册

Chrome扩展开发文档

Grunt中文文档

移动Web前端知识库

正则表达式30分钟入门教程

前端开发体系建设日记

移动前端开发收藏夹

JSON风格指南

HTTP接口设计指北

前端资源分享(一)

前端资源分享(二)

前端代码规范及最佳实践

w3school教程整理

大数据

大数据/数据挖掘/推荐系统/机器学习相关资源

编程艺术

程序员编程艺术

每个程序员都应该了解的内存知识(译)【第一部分】

取悦的工序:如何理解游戏(豆瓣阅读,免费书籍)

其他

OpenWrt智能、自动、透明翻墙路由器教程

语言相关类AWK

awk程序设计语言

C/C++

C++并发编程指南(@傅海平ICT)

LinuxC编程一站式学陪袭枯习(宋劲杉,北京亚嵌教育研究中心)

CGDB中文手册

100个gdb小技巧

100个gcc小技巧禅碰

ZMQ指南

(中英文版)

跟我一起写Makefile(PDF)

GNUmake中文手册

GNUmake指南

GoogleC++风格指南

C/C++Primer(by@andycai)

简单易懂的C魔法

Cmake实践(PDF版)

C++FAQLITE(中文版)

C++Primer5thAnswers

CSS/HTML

学习CSS布局

通用CSS笔记、建议与指导

CSS参考手册

Emmet文档

前端代码规范(腾讯alloyteam团队)

Dart

Dart语言导览

Fortran

Fortran77和90/95编程入门

Java

实时Java系列

ApacheShiro用户指南

使用Eclipse和JavaSE6创建独立WebServices应用程序

第1部分:WebServices服务端应用程序

第2部分:Web服务客户端应用程序

JavaServerFaces1.2入门

第1部分:构建基本应用程序

第2部分:JSF生命周期、转换、检验和阶段监听器

用EclipseEuropa进行Web开发

第1部分:EclipseJavaEE

第2部分:PHP开发工具

第3部分:RubyDevelopmentToolkit和RadRails

使用JavaServerFaces构建芦洞ApacheGeronimo应用程序

第1部分:使用Eclipse和ApacheMyFacesCore构建基本的应用程序

第2部分:在JavaServerFaces中使用Tomahawk

第3部分:使用ajax4jsf添加Ajax功能

第4部分:使用ApacheTrinidad组件扩展JSF

第5部分:将JSF应用程序与Spring集成

ApacheGeronimo和Spring框架

第1部分:开发方法学

第2部分:构建第一个应用程序

第3部分:集成DAO与ORM

第4部分:混合使用SpringAOP和SpringWebFlow

第5部分:SpringMVC

第6部分:SpringMVC:使用Web视图技术

终极mashup——Web服务和语义Web

第1部分:使用与组合Web服务

第2部分:管理Mashup数据缓存

第3部分:理解RDF和RDFs

第4部分:创建本体

第5部分:切换Web服务

Jersey2.x用户指南

MyBatis中文文档

JavaScript

GoogleJavaScript代码风格指南

AirbnbJavaScript规范

JavaScript标准参考教程(alpha)

Javascript编程指南(源码)

javascript的12个怪癖

JavaScript秘密花园

JavaScript核心概念及实践(PDF)(此书已由人民邮电出版社出版发行,但作者依然免费提供PDF版本,希望开发者们去购买,支持作者)

《JavaScript模式》翻译,此书中文版有售,但是纸质书翻译的还没有这个版本翻译的好

命名函数表达式探秘(注:原文由为之漫笔翻译,原始地址无法打开,所以此处地址为我博客上的备份)

学用JavaScript设计模式(开源中国)

深入理解JavaScript系列

ECMAScript6入门(作者:阮一峰)

jQuery

jQuery解构

简单易懂的JQuery魔法

HowtowritejQueryplugin

Node.js

Node入门

七天学会NodeJS

NodejsWikiBook(繁体中文)

express.js中文文档

koa中文文档

使用Express+MongoDB搭建多人博客

Express框架

nodejs文档

Node.js包教不包会

LearnYouTheNode.jsForMuchWin!(中文版)

Nodedebug三法三例

underscore.js

Underscore.js中文文档

backbone.js

backbone.js入门教程(PDF)

Backbone.js入门教程第二版

DevelopingBackbone.jsApplications(中文版)

AngularJS

AngularJS最佳实践和风格指南

AngularJS中译本

AngularJS入门教程

构建自己的AngularJS

在Windows环境下用Yeoman构建AngularJS项目

zepto简明中文手册

Sea.js

HelloSea.js

CoffeeScript

CoffeeScriptCookbook

TheLittleBookonCoffeeScript中文版

ExtJS

Ext4.1.0中文文档

Chrome扩展及应用开发

JavaScript入门教程

PHP

PHP调试技术手册(PDF)

XDebug2中文手册(译)(CHM)

PHP之道

PHP最佳实践

PHP安全最佳实践

深入理解PHP内核

PHP扩展开发及内核应用

CodeIgniter用户指南

Laravel4中文文档

Laravel入门

Symfony2中文文档(未译完)

Phalcon中文文档(翻译进行中)

YiiBook几本Yii框架的在线教程

简单易懂的PHP魔法

swoole文档及入门教程

iOS

iOS开发60分钟入门

iOS7人机界面指南

GoogleObjective-CStyleGuide中文版

iPhone6屏幕揭秘

AppleWatch开发初探

马上着手开发iOS应用程序

网易斯坦福大学公开课:iOS7应用开发字幕文件

Android

AndroidDesign(中文版)

GoogleAndroid官方培训课程中文版

Android学习之路

Python

小白的Python教程

简明Python教程

零基础学Python

Python2.7官方教程中文版

Python3.3官方教程中文版

深入Python3

PEP8Python代码风格规范

GooglePython风格指南中文版

Python入门教程(PDF)

Python的神奇方法指南

笨办法学Python(PDF版下载)

Django文档中文版

Django最佳实践

TheDjangoBook中文版

web.py0.3新手指南

Web.pyCookbook简体中文版

DiveIntoPython中文版

Bottle文档中文版(需翻墙)

Flask文档中文版

Jinja2文档中文版

Werkzeug文档中文版

Flask之旅

IntroctiontoTornado中文翻译

Python自然语言处理中文版(感谢陈涛同学的翻译,也谢谢?@shwley联系了作者)

Python绘图库matplotlib官方指南中文翻译

Scrapy0.25文档

ThinkPython

Ruby

Ruby风格指南

Rails风格指南

笨方法学Ruby

RubyonRails指南

RubyonRails实战圣经

RubyonRailsTutorial原书第2版(本书网页版免费提供,电子版以PDF、EPub和Mobi格式提供购买,仅售9.9美元)

编写Ruby的C拓展

Ruby源码解读

Shell

Shell脚本编程30分钟入门

Go

Go编程基础

Go入门指南

学习Go语言(PDF)

GoWeb编程(此书已经出版,希望开发者们去购买,支持作者的创作)

Go实战开发(当我收录此项目时,作者已经写完第三章,如果读完前面章节觉得有帮助,可以给作者捐赠,以鼓励作者的继续创作)

NetworkprogrammingwithGo中文翻译版本

Groovy

实战Groovy系列

LaTeX

一份其实很短的LaTeX入门文档

一份不太简短的LATEX2ε介绍(PDF版)

LISP

ANSICommonLisp中文翻译版

Lua

Lua编程入门

Haskell

RealWorldHaskell中文版

R

R语言忍者秘笈

Scala

Scala课堂(Twitter的Scala中文教程)

EffectiveScala(Twitter的Scala最佳实践的中文翻译)

Scala指南

Swift

TheSwiftProgrammingLanguage中文版

Perl

ModernPerl中文版

Perl程序员应该知道的事

Prolog

笨办法学Prolog

Vim中文文档

Vimscript

笨方法学Vimscript中译本

Vim中文文档

读书笔记及其它读书笔记

编译原理(紫龙书)中文第2版习题答案

把《编程珠玑》读薄

EffectiveC++读书笔记

Golang学习笔记、Python学习笔记、C学习笔记(PDF)

Jsoup学习笔记

学习笔记:Vim、Python、memcached

图灵开放书翻译计划–C++、Python、Java等

蒂姆·奥莱利随笔(由译言网翻译,电子版免费)

Octave入门(PDF版)

SICP解题集

精彩博客集合

正则表达式简明参考

学习前端,有什么好书推荐吗?

对于零基础想小白,想要自学成为前端人才,可以看看以下书籍

《图解HTTP》:一本HTTP的神书,图文并茂,生动形象,中猜非常适合小白学习。

《HeadFirstHTML与CSS(第2版)》:入门真的是经典书籍,手把手教学,丰富的案例让你从0开始学前端。

《锋利的jQuery》:作为第一本原因是jQuery入门快,你不会因为js的晦涩难懂而止步不前,因为学习jQuery后你可以自己写一些可以即使看到效果的小项目从而提升兴趣。

《Javascript高级程序设计》:书中涉及的概念基本涵盖了js的大部分内容,包括作用域链、js数据类型、OOP对象在js中的实现、闭包、BOM和DOM模型、对变态IE的系列兼容的解决方案、事件流、还有xml、jason、E4X这些数据格式与js的交互操作简介、高级技巧的介绍(比如惰性载入)等等

《高性能JavaScript》:揭示了技术和策略能帮助你在开发过程中消除性能瓶颈。你将会了解如何提升各方面的性能,包括代码的加载、运行、DOM交互、页面生存周期等。

《JavaScript设计模式与开发实践》:腾讯前端AlloyTeam团队出品,综合讲述前端的设计模式,设计原则,编程技巧,旁盯代码重构等等。

《CSS世界》:CSS和javascript一样,都是很容易上手,却很难精通的。这本是前端知名博主张鑫旭的书籍,好评很多,讲的很细致。

《CSS揭秘》:CSS进阶必备书籍,47个css技巧让你在面对各种css问题的时候游刃有余。

《深入浅出Node.js》:针对Node的基本原理卖启型做了深入,能让你了解底层的Node实现

⑵ 推荐个入门angularjs 的好书,谢谢

angularjs是前端JavaScript中一种新的框架而且有跨时代的意义。

1、首先是其angularjs解决了JavaScript开发中频繁获取DOM操作的DOM的工作,完全解放了这个繁琐的操作,完全不同于jQuery只将DOM操作封装简化。

2、AngularJS试图成为WEB应用中的一种端对端的解决方案。这意味着它不只是你的WEB应用中的一个小部分,还是一个完整的端对端的解决方案。

3、AngularJS为开发者呈现一个更高层次的抽象来简化应用的开发。

以上是个人对angularjs的一些优点的看法。

对于推荐的书籍:

1、对于初学者,个人推荐《angularjs权威教程》这本书,这本书是国外的作品但是有中文翻译版,对于入门的初学者这本书完全够用,完全弄懂这本书基本就能是一个中级的水平了。


最后,建议学习angular可以结合网上一些免费的视频和官网的文档来进行学习,这些可以让学习者在较短的时间内迅速的掌握基础知识入门。

⑶ angularjs官网为什么上不去了

若您遇到了无法访问AngularJS官网API的情况,可以尝试访问AngularJS爱好者们创建的一个开发指南中文翻译项目展示站点。此站点提供了API内容,当前主要展示1.2.3版本,未来将根据时间安排更新至最新版本。相信这将对您有所帮助。

⑷ GitHub 上有哪些值得推荐的开源电子书

语言无关类
操作系统

  • 鸟哥的Linux私房菜 (简体)

  • Linux 系统高级编程

  • The Linux Command Line (中英文版)

  • Linux 设备驱动 (第三版)

  • 深入分析Linux内核源码

  • UNIX TOOLBOX

  • Docker中文指南

  • Docker —— 从入门到实践

  • FreeRADIUS新手入门

  • Mac 开发配置手册

  • FreeBSD 使用手册

  • Linux 命令行(中文版)

  • 智能系统
  • 一步步搭建物联网系统

  • web服务器
  • Nginx开发从入门到精通 (淘宝团队出品)

  • 版本控制
  • Git教程 (本文由 @廖雪峰 创作,如果觉得本教程对您有帮助,可以去 iTunes 购买)

  • git – 简易指南

  • 猴子都能懂的GIT入门

  • Git 参考手册

  • Pro Git

  • Git Magic

  • GotGitHub

  • Git Community Book 中文版

  • Mercurial 使用教程

  • HgInit (中文版)

  • 沉浸式学 Git

  • Git-Cheat-Sheet (感谢 @flyhigher139 翻译了中文版)

  • GitHub秘籍

  • NoSQL
  • NoSQL数据库笔谈 (PDF)

  • Redis 设计与实现

  • Redis 命令参考

  • 带有详细注释的 Redis 3.0 代码

  • 带有详细注释的 Redis 2.6 代码

  • The Little MongoDB Book

  • The Little Redis Book

  • Neo4j 简体中文手册 v1.8

  • Neo4j .rb 中文资源

  • MySQL
  • MySQL索引背后的数据结构及算法原理

  • 项目相关
  • 持续集成(第二版) (译言网)

  • 让开发自动化系列专栏

  • 追求代码质量

  • selenium 中文文档

  • Joel谈软件

  • 约耳谈软体(Joel on Software)

  • Web
  • 关于浏览器和网络的 20 项须知

  • 前端知识体系

  • 浏览器开发工具的秘密

  • Chrome 开发者工具中文手册

  • Chrome扩展开发文档

  • Grunt中文文档

  • 移动Web前端知识库

  • 正则表达式30分钟入门教程

  • 前端开发体系建设日记

  • 移动前端开发收藏夹

  • JSON风格指南

  • HTTP 接口设计指北

  • 前端资源分享(一)

  • 前端资源分享(二)

  • 前端代码规范 及 最佳实践

  • w3school教程整理

  • 大数据
  • 大数据/数据挖掘/推荐系统/机器学习相关资源

  • 编程艺术
  • 程序员编程艺术

  • 每个程序员都应该了解的内存知识(译)【第一部分】

  • 取悦的工序:如何理解游戏 (豆瓣阅读,免费书籍)

  • 其他
  • OpenWrt智能、自动、透明翻墙路由器教程

  • 语言相关类 AWK
  • awk程序设计语言

  • C/C++
  • C++ 并发编程指南 (@傅海平ICT)

  • Linux C编程一站式学习 (宋劲杉, 北京亚嵌教育研究中心)

  • CGDB中文手册

  • 100个gdb小技巧

  • 100个gcc小技巧

  • ZMQ 指南

  • How to Think Like a Computer Scientist (中英文版)

  • 跟我一起写Makefile(PDF)

  • GNU make中文手册

  • GNU make 指南

  • Google C++ 风格指南

  • C/C++ Primer (by @andycai)

  • 简单易懂的C魔法

  • Cmake 实践 (PDF版)

  • C++ FAQ LITE(中文版)

  • C++ Primer 5th Answers

  • CSS/HTML
  • 学习CSS布局

  • 通用 CSS 笔记、建议与指导

  • CSS参考手册

  • Emmet 文档

  • 前端代码规范 (腾讯alloyteam团队)

  • Dart
  • Dart 语言导览

  • Fortran
  • Fortran77和90/95编程入门

  • Java
  • 实时 Java 系列

  • Apache Shiro 用户指南

  • 使用 Eclipse 和 Java SE 6 创建独立 Web Services 应用程序

  • 第 1 部分: Web Services 服务端应用程序

  • 第 2 部分: Web 服务客户端应用程序

  • JavaServer Faces 1.2 入门

  • 第 1 部分: 构建基本应用程序

  • 第 2 部分: JSF 生命周期、转换、检验和阶段监听器

  • 用 Eclipse Europa 进行 Web 开发

  • 第 1 部分: Eclipse Java EE

  • 第 2 部分: PHP 开发工具

  • 第 3 部分: Ruby Development Toolkit 和 RadRails

  • 使用 JavaServer Faces 构建 Apache Geronimo 应用程序

  • 第 1 部分: 使用 Eclipse 和 Apache MyFaces Core 构建基本的应用程序

  • 第 2 部分: 在 JavaServer Faces 中使用 Tomahawk

  • 第 3 部分: 使用 ajax4jsf 添加 Ajax 功能

  • 第 4 部分: 使用 Apache Trinidad 组件扩展 JSF

  • 第 5 部分: 将 JSF 应用程序与 Spring 集成

  • Apache Geronimo 和 Spring 框架

  • 第 1 部分: 开发方法学

  • 第 2 部分: 构建第一个应用程序

  • 第 3 部分: 集成 DAO 与 ORM

  • 第 4 部分: 混合使用 Spring AOP 和 Spring Web Flow

  • 第 5 部分: Spring MVC

  • 第 6 部分: Spring MVC:使用 Web 视图技术

  • 终极 mashup —— Web 服务和语义 Web

  • 第 1 部分: 使用与组合 Web 服务

  • 第 2 部分: 管理 Mashup 数据缓存

  • 第 3 部分: 理解 RDF 和 RDFs

  • 第 4 部分: 创建本体

  • 第 5 部分: 切换 Web 服务

  • Jersey 2.x 用户指南

  • MyBatis中文文档

  • JavaScript
  • Google JavaScript 代码风格指南

  • Airbnb JavaScript 规范

  • JavaScript 标准参考教程(alpha)

  • Javascript编程指南 (源码)

  • javascript 的 12 个怪癖

  • JavaScript 秘密花园

  • JavaScript核心概念及实践 (PDF) (此书已由人民邮电出版社出版发行,但作者依然免费提供PDF版本,希望开发者们去购买,支持作者)

  • 《JavaScript 模式》翻译,此书中文版有售,但是纸质书翻译的还没有这个版本翻译的好

  • 命名函数表达式探秘 (注:原文由为之漫笔翻译,原始地址无法打开,所以此处地址为我博客上的备份)

  • 学用 JavaScript 设计模式 (开源中国)

  • 深入理解JavaScript系列

  • ECMAScript 6 入门 (作者:阮一峰)

  • jQuery

  • jQuery 解构

  • 简单易懂的JQuery魔法

  • How to write jQuery plugin

  • Node.js

  • Node入门

  • 七天学会NodeJS

  • Nodejs Wiki Book (繁体中文)

  • express.js 中文文档

  • koa 中文文档

  • 使用 Express + MongoDB 搭建多人博客

  • Express框架

  • nodejs文档

  • Node.js 包教不包会

  • Learn You The Node.js For Much Win! (中文版)

  • Node debug 三法三例

  • underscore.js

  • Underscore.js中文文档

  • backbone.js

  • backbone.js入门教程 (PDF)

  • Backbone.js入门教程第二版

  • Developing Backbone.js Applications(中文版)

  • AngularJS

  • AngularJS最佳实践和风格指南

  • AngularJS中译本

  • AngularJS入门教程

  • 构建自己的AngularJS

  • 在Windows环境下用Yeoman构建AngularJS项目

  • zepto 简明中文手册

  • Sea.js

  • Hello Sea.js

  • CoffeeScript

  • CoffeeScript Cookbook

  • The Little Book on CoffeeScript中文版

  • ExtJS

  • Ext4.1.0 中文文档

  • Chrome扩展及应用开发

  • JavaScript入门教程

  • PHP
  • PHP调试技术手册(PDF)

  • XDebug 2中文手册(译) (CHM)

  • PHP之道

  • PHP 最佳实践

  • PHP安全最佳实践

  • 深入理解PHP内核

  • PHP扩展开发及内核应用

  • CodeIgniter 用户指南

  • Laravel4 中文文档

  • Laravel 入门

  • Symfony2中文文档 (未译完)

  • Phalcon中文文档(翻译进行中)

  • YiiBook几本Yii框架的在线教程

  • 简单易懂的PHP魔法

  • swoole文档及入门教程

  • iOS
  • iOS开发60分钟入门

  • iOS7人机界面指南

  • Google Objective-C Style Guide 中文版

  • iPhone 6 屏幕揭秘

  • Apple Watch开发初探

  • 马上着手开发 iOS 应用程序

  • 网易斯坦福大学公开课:iOS 7应用开发字幕文件

  • Android
  • Android Design(中文版)

  • Google Android官方培训课程中文版

  • Android学习之路

  • Python
  • 小白的Python教程

  • 简明Python教程

  • 零基础学Python

  • Python 2.7 官方教程中文版

  • Python 3.3 官方教程中文版

  • 深入 Python 3

  • PEP8 Python代码风格规范

  • Google Python 风格指南 中文版

  • Python入门教程 (PDF)

  • Python的神奇方法指南

  • 笨办法学 Python (PDF版下载)

  • Django 文档中文版

  • Django 最佳实践

  • The Django Book 中文版

  • web.py 0.3 新手指南

  • Web.py Cookbook 简体中文版

  • Dive Into Python 中文版

  • Bottle 文档中文版 (需翻墙)

  • Flask 文档中文版

  • Jinja2 文档中文版

  • Werkzeug 文档中文版

  • Flask之旅

  • Introction to Tornado 中文翻译

  • Python自然语言处理中文版 (感谢陈涛同学的翻译,也谢谢 @shwley 联系了作者)

  • Python 绘图库 matplotlib 官方指南中文翻译

  • Scrapy 0.25 文档

  • ThinkPython

  • Ruby
  • Ruby 风格指南

  • Rails 风格指南

  • 笨方法学 Ruby

  • Ruby on Rails 指南

  • Ruby on Rails 实战圣经

  • Ruby on Rails Tutorial 原书第 2 版 (本书网页版免费提供,电子版以 PDF、EPub 和 Mobi 格式提供购买,仅售 9.9 美元)

  • 编写Ruby的C拓展

  • Ruby 源码解读

  • Shell
  • Shell脚本编程30分钟入门

  • Go
  • Go编程基础

  • Go入门指南

  • 学习Go语言 (PDF)

  • Go Web 编程 (此书已经出版,希望开发者们去购买,支持作者的创作)

  • Go实战开发 (当我收录此项目时,作者已经写完第三章,如果读完前面章节觉得有帮助,可以给作者捐赠,以鼓励作者的继续创作)

  • Network programming with Go 中文翻译版本

  • Groovy
  • 实战 Groovy 系列

  • LaTeX
  • 一份其实很短的 LaTeX 入门文档

  • 一份不太简短的 LATEX 2ε 介绍 (PDF版)

  • LISP
  • ANSI Common Lisp 中文翻译版

  • Lua
  • Lua编程入门

  • Haskell
  • Real World Haskell 中文版

  • R
  • R语言忍者秘笈

  • Scala
  • Scala课堂 (Twitter的Scala中文教程)

  • Effective Scala(Twitter的Scala最佳实践的中文翻译)

  • Scala指南

  • Swift
  • The Swift Programming Language 中文版

  • Perl
  • Modern Perl 中文版

  • Perl 程序员应该知道的事

  • Prolog
  • 笨办法学Prolog

  • Vim中文文档

  • Vimscript
  • 笨方法学Vimscript 中译本

  • Vim中文文档

  • 读书笔记及其它 读书笔记
  • 编译原理(紫龙书)中文第2版习题答案

  • 把《编程珠玑》读薄

  • Effective C++读书笔记

  • Golang 学习笔记、Python 学习笔记、C 学习笔记 (PDF)

  • Jsoup 学习笔记

  • 学习笔记: Vim、Python、memcached

  • 图灵开放书翻译计划–C++、Python、Java等

  • 蒂姆·奥莱利随笔 (由译言网翻译,电子版免费)

  • Octave 入门 (PDF版)

  • SICP 解题集

  • 精彩博客集合

  • 正则表达式简明参考

⑸ 对比jQuery和AngularJS的不同思维模式

jQuery是dom驱动,AngularJS是数据驱动,这里有一篇文章阐述的非常好,建议看看

本文来自StackOverFlow上How do I “think in AngularJS” if I have a jQuery background?一题中得票最高的回答。该回答得票超过3000次,回答者Josh David Miller是活跃于开源社区的开发者,也是Emergenesis公司的联合创始人。该答案最初由数云架构师韩铮翻译并发布在自己的博客上,在征得Josh同意后由韩铮本人推荐给 InfoQ进行分享,并在经过InfoQ社区编辑崔康审校后发布在此。
1. 不要先设计页面,然后再使用DOM操作来改变它的展现
在jQuery中,你通常会设计一个页面,然后再给它动态效果。这是因为jQuery的设计就是为了扩充DOM并在这个简单的前提下疯狂的生长的。
但是在AngularJS里,必须从头开始就在头脑中思考架构。必须从你想要完成的功能开始,然后设计应用程序,最后来设计视图,而非“我有这么一个DOM片段,我想让他可以实现XXX效果”。
2. 不要用AngularJS来加强jQuery
类似的,不要以这样的思维开始:用jQuery来做X,Y和Z,然后只需要把AngularJS的models和controllers加在这上面。这在刚开始的时候显得非常诱人,这也是为什么我总是建议AngularJS的新手完全不使用jQuery,至少不要在习惯使用“Angular Way”开发之前这么做。
我在邮件列表里看到很多开发者使用150或200行代码的jQuery插件创造出这些复杂的解决方案,然后使用一堆callback函数以及$apply把它粘合到AngularJS里,看起来复杂难懂;但是他们最终还是把它搞定了!问题是在大多数情况下这些jQuery插件可以使用很少的AngularJS代码重写,而且所有的一切都很简单直接容易理解。
这里的底线是:当你选择解决方案时,首先“think in AngularJS”;如果想不出一个解决方案,去社区求助;如果还是没有简单的解决方案,再考虑使用jQuery。但是不要让jQuery成为你的拐杖,导致你永远无法真正掌握AngularJS。
3. 总是以架构的角度思考
首先要知道Single-page应用是应用,不是网页。所以我们除了像一个客户端开发者般思考外,还需要像一个服务器端开发者一样思考。我们必须考虑如何把我们的应用分割成独立的,可扩展且可测试的组件。
那么如何做到呢?如何“think in AngularJS”?这里有一些基本原则,对比jQuery。
视图是“Official Record”
在jQuery里,我们编程改变视图。我们会将一个下拉菜单定义为一个ul :
<ul class="main-menu">
<li class="active"> <a href="#/home">Home</a> </li>
<li> <a href="#/menu1">Menu 1</a>
<ul>
<li><a href="#/sm1">Submenu 1</a></li>
<li><a href="#/sm2">Submenu 2</a></li>
<li><a href="#/sm3">Submenu 3</a></li>
</ul>
</li>
<li> <a href="#/home">Menu 2</a> </li>
</ul>

在jQuery里,我们会在应用逻辑里这样启用这个下拉菜单:
$('.main-menu').dropdownMenu();

当我们只关注视图,这里不会立即明显的体现出任何(业务)功能。对于小型应用,这没什么不妥。但是在规模较大的应用中,事情就会变得难以理解且难以维护。
而在AngularJS里,视图是基于视图的功能。ul声明就会像这样:
<ul class="main-menu" dropdown-menu> ... </ul>

这两种方式做了同样的东西,但是在AngularJS的版本里任何人看到这个模版都可以知道将会发生什么事。不论何时一个新成员加入开发团队,他看到这个就会知道有一个叫做dropdownMenu的directive作用在这个标签上;他不需要靠直觉去猜测代码的功能或者去看任何代码。视图本身告诉我们会发生什么事。清晰多了。
首次接触AngularJS的开发者通常会问这样一个问题:如何找到所有的某类元素然后给它们加上一个directive。但当我们告诉他:别这么做时,他总会显得非常的惊愕。而不这么做的原因是这是一种半jQuery半AngularJS的方式,这么做不好。这里的问题在于开发者尝试在 AngularJS的环境里“do jQuery”。这么做总会有一些问题。视图是official record(译者注:作者可能想表达视图是一等公民)。在一个directive外,绝不要改变DOM。所有的directive都应用在试图上,意图非常清晰。
记住:不要设计,然后写标签。你需要架构,然后设计。
数据绑定
这是到现在为止最酷的AngularJS特性。这个特性使得前面提到的很多DOM操作都显得不再需要。AngularJS会自动更新视图,所以你自己不用这么做!在jQuery里,我们响应事件然后更新内容,就像这样:
$.ajax({
url: '/myEndpoint.json',
success: function ( data, status ) {
$('ul#log').append('<li>Data Received!</li>');
}
});

对应的视图:
<ul class="messages" id="log"> </ul>

除了要考虑多个方面,我们也会遇到前面视图中的问题。但是更重要的是,需要手动引用并更新一个DOM节点。如果我们想要删除一个log条目,也需要针对DOM编码。那么如何脱离DOM来测试这个逻辑?如果想要改变展现形式怎么办?
这有一点凌乱琐碎。但是在AngularJS里,可以这样来实现:
$http('/myEndpoint.json').then(function (response) {
$scope.log.push({
msg: 'Data Received!'
});
});

视图看起来是这个样子的:
<ul class="messages"> <li ng-repeat="entry in log"></li> </ul>

但是其实还可以这样来做:
<div class="messages"> <div class="alert" ng-repeat="entry in log"> </div> </div>

现在如果我们想使用Bootstrap的alert boxes,而不是一个无序列表,根本不需要改变任何的controller代码!更重要的是,不论log在何处或如何被更新,视图便会随之更新。自动的。巧妙!
尽管我没有在这里展示,数据绑定其实是双向的。所以这些log信息在视图里也可以是可编辑的。只需要这么做:
<input ng-model="entry.msg" />

。简单快乐。
清晰的模型(Model)层
在jQuery里,DOM在一定程度上扮演了模型的角色。但在AngularJS中,我们有一个独立的模型层可以灵活的管理。完全与视图独立。这有助于上述的数据绑定,维护了关注点的分离(独立的考虑视图和模型),并且引入了更好的可测性。后面还会提到这点。
关注点分离
上面所有的内容都与这个愿景相关:保持你的关注点分离。视图负责展现将要发生的事情;模型表现数据;有一个service层来实现可复用的任务;在 directive里面进行DOM操作和扩展;使用controller来把上面的东西粘合起来。这在其他的答案里也有叙述,我在这里只增加关于可测试性的内容,在后面的一个段落里详述。
依赖注入
依赖注入帮我们实现了关注点分离。如果你来自一个服务器语言(java或php),可能对这个概念已经非常熟悉,但是如果你是一个来自jQuery的客户端开发者,这个概念可能看起来有点傻而多余。但其实不是的。。。
大体来讲,DI意味着可以非常自由的声明组件,然后在另一个组件里,只需要请求一个该组件的实例,就可以得到它。不需要知道(关心)加载顺序,或者文件位置,或类似的事情。这种强大可能不会立刻显现,但是我只提供一个(常见。。)的例子:测试。
就说在你的应用里,我们需要一个服务通过REST API来实现服务器端存储,并且根据不同的应用状态,也有可能使用(客户端)本地存储。当我们运行controller的测试时,不希望必须和服务器交互 —— 毕竟是在测试controller逻辑。我们可以只添加一个与本来使用的service同名的mock service,injector会确保controller自动得到假的那个service —— controller不会也不需要知道有什么不同。
说起测试……
4. 总是 —— 测试驱动开发
这其实是关于架构的第3节。但是它太重要了,所以我把它单独拿出来作为一个顶级段落。
在所有那些你见过,用过或写过的jQuery插件中,有多少是有测试集的?不多,因为jQuery经不起测试的考验。但是AngularJS可以。
在jQuery中,唯一的测试方式通常是独立地创建附带sample/demo页面的组件,然后我们的测试在这个页面上做DOM操作。所以我们必须独立的开发一个组件,然后集成到应用里。多不方便!在使用jQuery开发时,太多的时间,我们挑选迭代而非测试驱动开发。谁又能责怪我们呢?
但是因为有了关注点分离,我们可以在AngularJS中迭代地做测试驱动开发!例如,想要一个超级简单的directive来展现我们的当前路径。可以在视图里声明:
<a href="/hello" when-active>Hello</a>

OK,现在可以写一个测试:
it('should add "active" when the route changes', inject(function () {
var elm = $compile('<a href="/hello" when-active>Hello</a>')($scope);
$location.path('/not-matching');
expect(elm.hasClass('active')).toBeFalsey();
$location.path('/hello');
expect(elm.hasClass('active')).toBeTruthy();
}));

执行这个测试来确认它是失败的。然后我们可以开始写这个directive了:
.directive('whenActive', function ($location) {
return {
scope: true,
link: function (scope, element, attrs) {
scope.$on('$routeChangeSuccess', function () {
if ($location.path() == element.attr('href')) {
element.addClass('active');
} else {
element.removeClass('active');
}
});
}
};
});

测试现在通过了,然后我们的menu按照请求的方式执行。开发过程既是迭代的也是测试驱动的。太酷了。
5. 概念上,Directives并不是打包的jQuery
你经常会听到“只在directive里做DOM操作”。这是必需的。请给它应有的尊重!
但让我们再深入一点……
一些directive仅仅装饰了视图中已经存在的东西(想想ngClass)并且因此有时候仅仅直接做完DOM操作然后就完事了。但是如果一个 directive像一个“widget”并且有一个模版,那么它也要做到关注点分离。也就是说,模版本身也应该很大程度上与其link和 controller实现保持独立。
AngularJS拥有一整套工具使这个过程非常简单;有了ngClass我们可以动态地更新class;ngBind使得我们可以做双向数据绑定。ngShow和ngHide可编程地展示和隐藏一个元素;以及更多地 —— 包括那些我们自己写的。换句话说,我们可以做到任何DOM操作能实现的特性。DOM操作越少,directive就越容易测试,也越容易给它们添加样式,在未来也越容易拥抱变化,并且更加的可复用和发布。
我见过很多AngularJS新手,把一堆jQuery扔到directive里。换句话说,他们认为“因为不能在controller里做DOM操作,就把那些代码弄到directive里好了”。虽然这么做确实好一些,但是依然是错误的。
回想一下我们在第3节里写的那个logger。即使要把它放在一个directive里,我们依然希望用“Angular Way”来做。它依然没有任何DOM操作!有很多时候DOM操作是必要的,但其实比你想的要少得多!在应用里的任何地方做DOM操作之前,问问你自己是不是真的需要这么做。有可能有更好的方式。
这里有一个示例,展示出了我见过最多的一种模式。我们想做一个可以toggle的按钮。(注意:这个例子有一点牵强、啰嗦,这是为了表达出使用同样方式处理问题的更复杂的情况。)
.directive('myDirective', function () {
return {
template: '<a class="btn">Toggle me!</a>',
link: function (scope, element, attrs) {
var on = false;
$(element).click(function () {
if (on) {
$(element).removeClass('active');
} else {
$(element).addClass('active');
}
on = !on;
});
}
};
});

这里有一些错误的地方。首先,jQeury根本没必要出现。我们在这里做的事情都根本用不着jQuery!其次,即使已经将jQuery用在了页面上,也没有理由用在这里。第三,即使假设这个directive依赖jQuery来工作,jqLite(angular.element)在加载后总会使用jQuery!所以我们没必要使用$ —— 用angular.element就够了。第四,和第三条紧密关联,jqLite元素不需要被$封装 —— 传到link里的元素本来就会是一个jQuery元素!第五,我们在前面段落中说过,为什么要把模版的东西混到逻辑里?
这个directive可以(即使是更复杂的情况下!)写得更简单:
.directive('myDirective', function () {
return {
scope: true,
template: '<a class="btn" ng-class="{active: on}" ng-click="toggle()">Toggle me!</a>',
link: function (scope, element, attrs) {
scope.on = false;
scope.toggle = function () {
scope.on = !$scope.on;
};
}
};
});

再一次地,模版就在模版里,当有样式需求时,你(或你的用户)可以轻松的换掉它,不用去碰逻辑。重用性 —— boom!
当然还有其他的好处,像测试 —— 很简单!不论模版中有什么,directive的内部API从来不会被碰到,所以重构也很容易。可以不碰directive就做到任意改变模版。不论你怎么改,测试总是通过的。
所以如果directive不仅仅是一组类似jQuery的函数,那他们是什么?Directive实际是HTML的扩展。如果HTML没有做你需要它做的事情,你就写一个directive来实现,然后就像使用HTML一样使用它。
换句话说,如果AngularJS库没有做的一些事情,想想开发团队会如何完成它来配合ngClick,ngClass等。
总结
不要用jQuery。连include也不要。它会让你停滞不前。如果遇到一个你认为已经知道如何使用jQuery来解决的问题,在使用$之前,试试想想如何在AngularJS的限制下解决它。如果你不知道,问!20次中的19次,最好的方式不需要jQuery。如果尝试使用jQuery会增加你的工作量。
这是我目前最长的Stack Overflow回答。事实上,这个答案太长了,我都要填一个Captcha了。但是就如我常说的:能说多时候说的少其实就是懒。
希望这个答案对你有用。

⑹ 我需要 AngularJS权威教程.ng-book,求书籍求分享百度网盘!谢好人!

我这有资源 可以看下 AngularJS权威教程.ng-bookhttps://pan..com/s/1S7P_pU0CUoybH7fvF5uhuw?pwd=1234

提取码:1234

本书是资深全栈工程师的代表性著作,由拥有丰富经验的国内AngularJS技术专家执笔翻译,通俗易懂、全面深入,是学习AngularJS不可错过的经典之作。无论是出于工作需要,还是好奇心的驱使,只要你想彻底理解AngularJS,本书都会让你感到满意。

阅读全文

与angularjs翻译文件缓存相关的资料

热点内容
iphone6不知道密码 浏览:775
word页码高度 浏览:510
aecs532位安装教程 浏览:823
驱动程序和应用程序之间的体系结构不匹配 浏览:598
ps文件如何用sai打开 浏览:649
骁龙820用什么版本炉石 浏览:366
win10网络g共享文件 浏览:713
解压文件要多少g 浏览:112
招商银行app如何无卡取款 浏览:289
win7打开软件密码 浏览:965
数据库练习实验心得 浏览:219
怎么删苹果系统文件 浏览:160
文件夹常识 浏览:184
荣耀net网络接入点怎么设置 浏览:65
红头文件上面空白处留多少 浏览:44
mate7文件夹 浏览:843
编程猫怎么发到qq邮箱里 浏览:719
java传智播客和小码哥 浏览:222
桌面设置文件夹在哪里 浏览:56
很皮app在哪里 浏览:807

友情链接