AngularJS 1.x平滑升级Angular实战(翻译)

本文翻译自Directly Upgrading From AngularJS 1.X To Angular Without Preparing The Existing Code Base

正文:

当我们从AngularJS 1.x升级到Angular(2/4/5)时,我们通常会先准备AngularJS 1.x的代码:

angularjs-upgrade-1

这个过程会引入像组件这类新的AngularJS 1.x技术。并且,引入TypeScript和像SystemJS或者Webpack之类的模块加载器是准备已有代码的进一步工作。这样做的目的是为了让代码更接近Angular便于更好的集成。

但是,在一些情况下,准备已有的代码成本很大。例如,试想一下这样的情形,当你不想修修改已有的AngularJS1.x的代码,并且想要写一些Angular的应用。当这样的情况在你的项目中发生,跳过准备阶段是一个好的主意。

angularjs-upgrade-2

这篇文章一步步展示如何完成这个过程。像官方的升级教程一样,包含准备代码的工作,这里也是升级流行的AngularJS 1.x 手机分类实例

即使这个实例覆盖了AngularJS 1.5中引入的组件,这里展示的对使用控制器(controller)和指令(directive)的代码也适用。

整个实例代码可以在Github 仓库中找到。为了接下来每一步更容易,我针对每一步做了一个代码提交。

阅读更多

Echarts绘制多个系列数据一一对应坐标轴

问题

通过Echarts展示多个系列的数据,并且每个系列的数据只有一条展示在坐标轴的某个值上。
比如,Y轴类别A上展示A系列,Y轴类别B上展示B系列数据,X轴共享,正常配置数据会导致Y轴
上显示1条数据,但是会有两条空白。

解决方案

通过系列数据中的barGap属性,设置柱间距离为”-100%”,使各个柱重叠显示。

实例

See the Pen Echarts Demo独立系列独立坐标轴 by Perry (@perry2008084) on CodePen.

2018年阅读清单

技术类:
[ ] 《Linux: 鸟哥的私房菜》
[ ] 《正则表达式必知必会》
[ ] 《HTML5实战手册》
[ ] 《别闹了,费曼先生》
[ ] 《HTTP权威指南》
[ ] 《CSS禅意花园》
[ ] 《Web前端开发修炼之道》
[ ] 《锋利的jquery》
[ ] 《JavaScript权威指南》
[ ] 《重构》
[ ] 《精通正则表达式》

人文历史类:
[ ] 《传习录》
[ ] 《王阳明全集》
[ ] 《富兰克林传》
[ ] 《百年孤独》
[ ] 《十日谈》
[ ] 《异类》
[ ] 《人生的盛宴》
[ ] 《浮生若梦》

经济类:
[ ] 《国富论》
[ ] 《一本书读懂财报》
[ ] 《世界上最简单的会计书》

其他:
[ ] 《失控》
[ ] 《创业维艰》
[ ] 《可爱的诅咒:圣母型人格心理自助手册》
[ ] 《精益创业》
[ ] 《生命之书》
[ ] 《黑客与画家》
[ ] 《正念的奇迹》
[ ] 《只要会呼吸.就能做冥想》

增加2017年的未读书籍,并增加王阳明的两本书。–2018.1.1
初版,更新于2017年12月24号

《The power of less》读书笔记

缘来:

每一天的时间有限,做得越多,不重要的事也做得多,压力也大;因此,减少做的事情,做重要的事,提高效率。

总则:

1、简化事务(simplify)
2、专注事务(focus)

几个原则:

1、设置限制
2、选择必需的事务,让时间和效率最大化
3、简化,减少非必需的事务
4、专注,这是变得更加高效的最重要的工具
5、养成新的习惯来不断进步
6、通过小步提高来确保开始新的习惯

专注:

专注是决定你是否能完成一个目标或者坚持养成一个新习惯最重要的因素。保持你在模板和习惯上的专注。专注于当前和现在会让你受益良多。这样可以减少压力并帮助你享受充实的人生。只专注于手头上的任务和正能量的。关注负能量的想法并用正能力去代替。
单任务,同一时间只进行单任务。多任务的切换是耗费时间和精力的,会让你出错或者会
变得有压力。

习惯:

养成一个长久坚持习惯的方法是应用少的力量:专注于一个习惯,一个月一个。
选择一个新习惯,写下计划,公开你的目标并每天更新你的进度。
养成习惯的时候,庆祝你的新习惯。

Sublime Text 3 安装eslint的JavaScript ES5版本插件总结

ESLint在JavaScript静态代码检测中变得很流行了,主要有几个原因:第一,容易配置;第二,混合了JShint和JSCS;第三,大神Nicholas Zakas写的,写JavaScript红宝石的作者。

安装ESLint

安装ESLint之前,确保环境中已经安装Node.js和npm。

npm install -g eslint

可以选择全局安装,也可以选择安装在项目本地。

阅读更多

设定目标-使用SMART法则

大纲:

设定目标的意义和常见的问题
使用SMART法则设定适当的目标
执行、检查和修正目标

设定目标的意义和常见的问题

目标犹如一座灯塔,设定了一个准确的目标,能够帮助我们达到我们想要的目的。

准确的设定目标,是目标能够达成的前提条件之一。而我们通常遇到的问题,比较严重的就是,没有
准确的设定目标,导致目标在执行过程中,出现以下的几类问题:
1、不知道如何评判是否达成目标
2、没有时间期限导致拖延
3、目标太模糊、太大,导致无法实现而放弃

阅读更多

《深度工作》读书笔记

《深度工作》阅读时间:2017.7.15~ 2017.9.1
利用这段零碎的世界,读完了这本书,简单总结下学到的内容。

深度工作带来的效益

深度工作带来的经济效益,不管是工程型或者学术型的工作,深度的工作均可以带来更为丰厚的成果。

深度工作带来的长期影响,除了短期的经济效益,养成深度工作的习惯,可以为长远的发展产生有益的影响。
养成深度工作的习惯,可以将平时浪费掉的时间,转化为学习的时间。

深度工作的方法

  • 工作要深度,可以去书中寻找一种适合自己的方式进行深度工作模式
  • 拥抱无聊,坚持专注
  • 远离社交媒体,至少能够保持低频率的使用社交应用
  • 摒弃浮浅,减少浮浅的工作内容

JavaScript中对象的几种创建方式

记录JavaScript中创建对象的几种方法。

工厂模式

工厂模式是一种设计模式,抽象创建具体对象的过程,用函数来封装特定接口并创建对象的细节。

实例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/* 工厂模式 */
function createPerson(name, age, job) {
var o = new Object();
o.name = name;
o.age = age;
o.job = job;
o.sayName = function() {
alert(this.name);
};
return o;
}

var person1 = createPerson("Nicholas", 29, "Software Engineer");
var person2 = createPerson("Greg", 27, "Doctor");

console.log(person1);
console.log(person2);

优点:
解决创建多个相似对象。

缺点:
没有解决对象识别的问题。

阅读更多

nginx访问页面报403的解决方法

近期搭建一个Wordpress站点,前期的准备工作完成,登录界面登录成功后,
显示的页面为403,禁止访问。

在网上搜索后,发现问题在于权限的问题,主要是页面文件所在的文件夹的访问
权限。由于nginx默认使用的用户权限无法访问页面的文件,导致报的403。

解决方法:

1、打开nginx.conf文件修改启动用户

1
$ vim /user/local/nginx/conf/nginx.conf

修改开头的用户,
#user nobody

改为
user nginx web;

或者其他用户,格式为用户[空格]用户组

2、重新启动nginx

1
$ /user/local/nginx/sbin/nginx -s reload

此时,重新测试,应该就可以访问成功了。

ssh密钥登录配置

配置密钥可使用户免密ssh方式登录服务器。

配置方法:

生成密钥对

1
$ ssh-keygen

此处可选择生成密钥的文件路径,默认为~/.ssh/id_rsa
密码为可选。

拷贝公钥到服务器

方式一:

1
$ ssh-copy-id -i ~/.ssh/id_rsa.pub xxx@host

方式二:

手动拷贝id_rsa.pub到服务器上,并收到添加认证文件。

1
$ cat id_rsa.pub >> ~/.ssh/authorized_keys

服务器配置

配置服务器上/etc/ssh/sshd_config文件,修改以下配置项

1
2
3
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

修改后,重启sshd服务,根据不同的系统使用相应命令

登录

直接登录

1
$ ssh user@host

如果配置成功,则不需要密码直接登录。

问题

配置成功后,仍提示密码输入

主要原因在于服务器上认证文件及所在目录的权限问题

详情排查步骤可查看文章配置ssh公钥登录提示还是输入密码

解决方法:

1
$ chmod 755 ~/home/xxxuser