日常随笔


关于Lap

这个theme现在还差个人介绍模块和article模块没有进行优化,其他的可能弄完以后暂时先不更新了
不过该有的功能和统计的东西肯定是会一点一点全部完成的

对于disqus,虽然看了一下其他人分享的如何去走代理设置让国内也可以访问,但我觉得这个办法还是不太好,既然无法成为一种更加通用可配置的方案,那就暂时不考虑了,也不是每个人都会去买一个vps进行配置,索性接这样弄: 3s访问不到就提示需要翻墙才可以进行评论。。 我觉得这样的处理方法比较通用吧。

近期安排

最近可能要继续开始加班了,毕竟年末,所以写开源和学习的自由时间可能不是很多,但我想起我有一部分文章放在了简书,所以我决定先搬运一波,然后在把自己学Graphql的一些东西稍微写写,最近就是graphql了,别的也没空看了,等年后吧~

最近一到周末就沉迷pokemon revolution不能自拔,可能要写一篇去安利一发了,毕竟是很多90后乃至80后满满的回忆~(更重要的是能和老外尬英文、PY)

点击阅读

关于最近的折腾


其实一直想用这个写博客的,但是出现过一次问题:
我在win上面提交都是正常的,但是把项目搞到mac上之后提交就出现了bug,研究了半天也没找到完美解决的办法,这才自己去搭建了一个自己的博客。。

点击阅读

ng-router


ng-router

ng-router可以把angular1变成一个spa应用,在页面上的原理就是渲染了不同的controller来实现不同的路由,具体实例代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<html>
<head>
<meta charset="utf-8">
<title>AngularJS 路由实例 - 菜鸟教程</title>
</head>
<body ng-app='routingDemoApp'>

<h2>AngularJS 路由应用</h2>
<ul>
<li><a href="#/">首页</a></li>
<li><a href="#/computers">电脑</a></li>
<li><a href="#/printers">打印机</a></li>
<li><a href="#/blabla">其他</a></li>
</ul>

<div ng-view></div>
<script src="http://apps.bdimg.com/libs/angular.js/1.4.6/angular.min.js"></script>
<script src="http://apps.bdimg.com/libs/angular-route/1.3.13/angular-route.js"></script>
<script>
angular.module('routingDemoApp',['ngRoute'])
.config(['$routeProvider', function($routeProvider){
$routeProvider
.when('/',{template:'这是首页页面'})
.when('/computers',{template:'这是电脑分类页面'})
.when('/printers',{template:'这是打印机页面'})
.otherwise({redirectTo:'/'});
}]);
</script>


</body>
</html>

首先,载入了实现路由的js文件:angular-route.js; 然后,包含了ngRoute模块作为主应用模块的依赖模块。

1
angular.module('routingDemoApp',['ngRoute'])

使用ngView指令

1
<div ng-view></div>

该div内html会根据路由的变化来变化。

然后配置$routeProvider, 用于定义我们的路由规则

1
2
3
4
5
6
7
module.config(['$routeProvider', function($routeProvider){
$routeProvider
.when('/',{template:'这是首页页面'})
.when('/computers',{template:'这是电脑分类页面'})
.when('/printers',{template:'这是打印机页面'})
.otherwise({redirectTo:'/'});
}]);

点击阅读

ngapi


ngApi

angular JS全局API用于执行常见任务的JS函数集合,如:

  • 比较对象
  • 迭代对象
  • 转换对象
    简单的说就是将一些工作中常用的方法封装到了angular.prototype上了,
    下面有几个典型的:

  • angular.lowercase() - 转换字符为小写

  • angular.uppercase() - 转换字符为大写
  • angular.isString() - 判断是否是字符串
  • angular.isNumber() - 判断是否是数字

例子: 地址

点击阅读

ng过滤器


ng过滤器

所有的例子会写在这里:例子

首先学习一下ng1的过滤器的一个基本写法:

一个过滤器,不带参数的情况

1
{{expression | filter}}

一个过滤器,带参数的情况

1
{{expression | filter:arguments}}

一个过滤器,带多个参数的情况

1
{{expression | filter: arg1: arg2: ...}}

多个过滤器,不带参数的情况

1
{{expression | filter1 | filter2 | ...}}

先学习自定义的,现找出来10个:

1. currency

顾名思义,用于将数字转换为货币的
默认的话,是将数字转化成了当前使用语言环境的符号
当然也可以设置自定义符号,格式:

1
{{ currency_expression | currency : symbol : fractionSize}}

其中symbol代表你要自定义的货币符号,fractionSize代表小数位的取舍量

2. date

根据要求将时间转换成字符串,开发当中经常用到,
格式化的字符串可以由以下原件组成:

  • ‘yyyy’: 年份用4位数字表示(e.g. AD 1 => 0001, AD 2010 => 2010)
  • ‘yy’: 年份用2位数字表示, 补全0 (00-99). (e.g. AD 2001 => 01, AD 2010 => 10)
  • ‘y’: 年份用最少位数字表示, e.g. (AD 1 => 1, AD 199 => 199)
  • ‘MMMM’: 月份 (January-December)
  • ‘MMM’: 月份 (Jan-Dec)
  • ‘MM’: 月份, 补全0 (01-12)
  • ‘M’: 月份 (1-12)
  • ‘dd’: 日期, 补全0 (01-31)
  • ‘d’: 日期 (1-31)
  • ‘EEEE’: 星期,(Sunday-Saturday)
  • ‘EEE’: 星期, (Sun-Sat)
  • ‘HH’: 小时, 补全0 (00-23)
  • ‘H’: 补全0 (0-23)
  • ‘hh’: AM/PM 表示的小时, 补全0 (01-12)
  • ‘h’: AM/PM 表示的小时, (1-12)
  • ‘mm’: 分钟, 补全0 (00-59)
  • ‘m’: 分钟 (0-59)
  • ‘ss’: 秒, 补全0 (00-59)
  • ‘s’: 秒 (0-59)
  • ‘sss’: 毫秒, 补全0 (000-999)
  • ‘a’: AM/PM 标记
  • ‘Z’: 用4位表示时区的偏移 (-1200-+1200)
  • ‘ww’: 周数, 补全0 (00-53). 01周是每年的包含第一个周四的周
  • ‘w’: Week of year (0-53). 01周是每年的包含第一个周四的周
  • ‘G’, ‘GG’, ‘GGG’: 时代的简写字符串 (e.g. ‘AD’)
  • ‘GGGG’: 时代的完整字符串 (e.g. ‘Anno Domini’)

格式字符串还可以是下列预定义的本地化的格式之一:

  • ‘medium’: en_US 地区的形式,等同于 ‘MMM d, y h:mm:ss a’ (e.g. Sep 3, 2010 12:05:08 PM)
  • ‘short’: en_US 地区的形式,等同于 ‘M/d/yy h:mm a’ (e.g. 9/3/10 12:05 PM)
  • ‘fullDate’: en_US 地区的形式,等同于 ‘EEEE, MMMM d, y’ (e.g. Friday, September 3, 2010)
  • ‘longDate’: en_US 地区的形式,等同于 ‘MMMM d, y’ (e.g. September 3, 2010)
  • ‘mediumDate’: en_US 地区的形式,等同于 ‘MMM d, y’ (e.g. Sep 3, 2010)
  • ‘shortDate’: en_US 地区的形式,等同于 ‘M/d/yy’ (e.g. 9/3/10)
  • ‘mediumTime’: en_US 地区的形式,等同于 ‘h:mm:ss a’ (e.g. 12:05:08 PM)
  • ‘shortTime’: en_US 地区的形式,等同于 ‘h:mm a’ (e.g. 12:05 PM)

格式字符串可以包含文字。但是需要使用 ‘ 包裹进行转义 (e.g. “h ‘in the morning’”).
如果想使用单引号,则需要转义 - 举个例子, 在一行里有两个单引号 (e.g. “h ‘o’’clock’”).

点击阅读

关于es7bind语法的小纪


有关es7 function bind syntax的东西

因为群里有大佬以前提到过,但是因为自己太菜了根本无法理解,所以就去学习了一下。。

概念

所谓的function bind syntax ,其实就是一个绑定的语法糖,就和箭头函数是类似的(箭头函数是声明函数时绑定this的语法糖,这里就有个坑,用箭头函数声明的方法就不能再使用::去绑定了,不会起作用。。)

作用

简单来说::有两种作用:

  1. 当::出现在一个对象名的签名,且对象名后面紧跟着一个它的方法名的时候,作用就是把这个对象绑定为这个方法的this
1
2
3
4
5
6
7
8
let obj = {
method() {
console.log(this)
}
}
::obj.method
//等同于
obj.method.bind(obj)
  1. 当::出现在对象和方法名之间的时候,将这个对象绑定为这个方法的this,当然,因为这个绑定后还是一个函数,所以也可以直接调用
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
let obj = {
foo: 'bar'
}
function method() {
console.log(this.foo)
}
obj::method()
//等同于
method.call(obj)()



obj::method
//等同于
method.bind(obj)

点击阅读

Proudly powered by Hexo and Theme by Lap
本站访客数人次
©2016 - 2018 BosenY