年轮说 | Ciel Ni

很高兴认识你


  • 首页

  • 关于

  • 标签22

  • 分类9

  • 归档32

  • 搜索

健的最后告白(求婚大作战)

发表于 2017-07-25 | 分类于 光影笔记

14年間 
14年来 

楽しいときも 
快乐时

辛い時も 
难过时

苦しい時も 
痛苦时

ずっと一緒に過ごしてきた礼を 
都一起度过的礼

阅读全文 »

kekbab-case (短横线隔开命名法)

发表于 2017-07-08 | 分类于 前端笔记

在Vue.js中,由于 HTML 特性不区分大小写。名字形式为 camelCase 的 prop 用作特性时,需要转为 kebab-case(短横线隔开)。
即 myMessage 转为 my-message 。

官网例子:

1
2
3
4
5
Vue.component('child', {
// camelCase in JavaScript
props: ['myMessage'],
template: '<span>{{ myMessage }}</span>'
})
1
2
<!-- kebab-case in HTML -->
<child my-message="hello!"></child>

解决刷新页面不触发 vue-router 的 beforeEach 钩子的问题

发表于 2017-06-30 | 分类于 前端笔记

问题

在使用 Vue.js 开发项目时,会用到 vue-router 模块来进行路由管理。为了在用户访问每个页面之前判断用户是否有访问该页面权限,需要用到 vue-router 的 beforeEach 全局钩子,在这个钩子中进行权限判断,决定允许或拒绝用户访问,或者是跳转到登录界面。

代码如下(vue-router 1.0):

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
33
34
35
36
37
Vue.use(Router)
// routing
var router = new Router()
router.map({
'/reject': {
component: RejectView
},
'/login': {
component: LoginView
}
})
router.start(App, '#app')
router.beforeEach(function (transition) {
if ( transition.to.path.indexOf('/login') === 0) {
transition.next()
return
}
if (document.cookie.indexOf('isLogin=true') < 0) {
router.go('/login?redirect=' + transition.to.path)
transition.next()
} else {
var cname = transition.to.params.cname
if (cname !== undefined) {
var has_permission = store.state.userInfo.power[Nav[cname]]
if (!has_permission) {
router.go('/reject')
transition.next()
return
}
}
transition.next()
}
})

然而出现一个bug,当我手动 F5 刷新页面时,却没有触发 beforeEach 钩子。

阅读全文 »

动态改变checkbox的选中状态

发表于 2017-06-12 | 分类于 前端笔记

问题

在写前端的时候,有一个需求是要用 js 代码动态改变复选框 checkbox 的选中状态。我的思路是通过改变checkbox元素的checked属性来实现页面上复选框是否选中的切换。

一开始的方法是通过jquery的attr()和removeAttr()方法来完成对元素checked属性的添加与修改,代码如下:

1
2
3
4
5
6
leader = $('#leader_modify');
if(is_leader == '1'){
leader.attr('checked', 'checked');
}else{
leader.removeAttr('checked')
}

这样子写是基本可以完成checkbox的状态切换,但会有一个bug:切换在一开始是正常的,但当我点击了一次复选框以后,之前的状态切换就不起作用了(。。这不是坑爹吗!?)

阅读全文 »

Vue 实例生命周期总结

发表于 2017-06-05 | 分类于 前端笔记

问题

由于Vue项目中需要前端导出表格的功能,需要用到第三方组件tableexport。使用该组件只需通过该语句TableExport(document.getElementsByTagName(“table”))生成一个TableExport对象。然而我却遇到一个bug,迟迟得不到预期,花了一整个白天没有解决。

睡觉之前我打印了document.getElementsByTagName(“table”)发现是undefined,这时候我意识到我生成TableExport对象的时机错误了,此时该table元素还没有插入文档中。于是我把这行代码从created钩子函数中移到了ready钩子函数中(vue 1.0),bug终于解决了。

阅读全文 »

托马斯韦恩给布鲁斯韦恩的信(闪点事件)

发表于 2017-06-02 | 分类于 光影笔记

Dear Son:

There’s only one thing I know about life.
I know some things happen by chance.
And some things happen because we make them happen.

阅读全文 »

解决Django中manage.py migrate无效的问题

发表于 2017-05-30 | 分类于 python笔记

介绍

Python的Django框架中有一个对象关系映射器,我们可以在其中以Python代码描述数据库布局,比如像这样:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
from django.db import models
class Reporter(models.Model):
full_name = models.CharField(max_length=70)
def __str__(self): # __unicode__ on Python 2
return self.full_name
class Article(models.Model):
pub_date = models.DateField()
headline = models.CharField(max_length=200)
content = models.TextField()
reporter = models.ForeignKey(Reporter)
def __str__(self): # __unicode__ on Python 2
return self.headline

阅读全文 »

如何爬取 Google Trends 数据

发表于 2017-05-28 | 分类于 爬虫笔记

谷歌趋势爬虫 Github 项目地址(Python)

谷歌趋势爬虫 Github 项目地址(Java)

Goole Trends介绍

功能介绍

谷歌趋势 (Google Trends)是Google推出的一款基于搜索日志分析的应用产品,它通过分析Google全球数以十亿计的搜索结果,告诉用户某一搜索关键词各个时期下在Google被搜索的频率和相关统计数据。(国内访问Google Trends需要翻墙)

阅读全文 »

致雪野小姐(言叶之庭)

发表于 2017-05-28 | 分类于 光影笔记

雪野小姐

请忘记我刚才的话吧

我其实根本不喜欢你 你从一开始就似乎 不招人喜欢

一大早就喝啤酒 用莫名其妙的短歌来糊弄人

自己的事只字不提 却不停套出别人的心思

阅读全文 »

解决移动端网页上传图片自动旋转的问题

发表于 2017-05-27 | 分类于 前端笔记

问题描述

之前在开发微信公众号的时候,遇到有一个需求是需要允许用户在移动端的网页上传图片。然而在初步开发后遇到一个bug:大多数情况下,用户上传的照片显示出来都会被旋转90度或者180度。
比如手机中选择的图片是这样子:

而用户上传以后显示出来的照片是这些样子:



阅读全文 »
1234
Ciel Ni

Ciel Ni

起风了 唯有努力生存

32 日志
9 分类
21 标签
RSS
微博 GitHub 豆瓣 Twitter 知乎 Facebook 简书 Instagram 网易云音乐 E-Mail
友情链接
  • 王雨城的个人博客
  • Zia's blog
  • Wade Chen's blog
  • Kerita's blog
  • codeyee | 通往体面生活的路上
  • Diamond Zhang
0%
© 2022 Ciel Ni
由 Hexo 强力驱动 v3.4.0
|
主题 — NexT.Gemini v6.3.0
Hosted by Coding Pages