VICTORCHENEY

INNERPEACE

gulp同时输出一个压缩过和一个未压缩版本的文件

同时输出一个压缩过和一个未压缩版本的文件

同时输出压缩过的和未压缩版本的文件可以通过使用 gulp-rename 然后 pipe 到 dest 两次来实现 (一次是压缩之前的,一次是压缩后的):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var gulp = require('gulp');
var rename = require('gulp-rename');
var uglify = require('gulp-uglify');

var DEST = 'build/';

gulp.task('default', function() {
return gulp.src('foo.js')
// 这会输出一个未压缩过的版本
.pipe(gulp.dest(DEST))
// 这会输出一个压缩过的并且重命名未 foo.min.js 的文件
.pipe(uglify())
.pipe(rename({ extname: '.min.js' }))
.pipe(gulp.dest(DEST));
});

javascript:;与javascript::void(0)使用介绍

javascript:;javascript::void(0)使用介绍

有时候我们在编写js过程中,需要触发事件而不需要返回值,那么就可能需要这样的写法

href="#"包含了一个位置信息.默认的锚是#top,也就是网页的上端,当连续快速点击此链接时会导致浏览器巨慢甚至崩溃。

当然我们一般用三个 href="###",不过看了这篇文章我们以后就可以使用javascript:;(一个冒号一个分号)

javascript中void是一个操作符,该操作符指定要计算一个表达式但是不返回值。

javascript:;好些,javascript::void(0)据说某些情况下有浏览器兼容bug。(此点bug我也不知道什么时候能出现,知道的童鞋请指教)。

Ubuntu命令之解压、安装node、防火墙操作

1、解压rar压缩文件

Ubuntu刚安装的时候是不能解压rar文件的,只有在安装了解压工具之后,才可以解压。

安装:sudo apt-get install unrar

卸载:sudo apt-get remove unrar

unrar常用命令主要有:

e – 将文件解压到当前目录
例:rar e test.rar
注:用e解压的话,不仅原来的file1.txt和file2.txt被解压到当前目录,就连dir1里面的所有文件
也被解压到当前目录下,不能保持压缩前的目录结构,如果想保持压缩前的目录结构,用x解压

angularjs表单验证

[转]常用的表单验证指令

1.必填项验证

某个表单输入是否已填写,只要在输入字段元素上添加HTML5标记required即可:

<input type="text" required />

2.最小长度

验证表单输入的文本长度是否大于某个最小值,在输入字段上使用指令ng-minleng= “{number}”:

<input type="text" ng-minlength="5" /> 


AngularJS 用 Interceptors 来统一处理 HTTP 请求和响应

主要功能

Interceptors 有两个处理时机,分别是:

其它程序代码执行 HTTP 请求之后,在实际从浏览器发出请求之前,即处理请求
得到请求的响应之后,在交给其它程序代码处理之前,即处理请求的响应
所以,不难理解它可以用于如下几个方面:

全局处理错误
统一进行身份验证一类的处理
对所有发出去的请求进行预处理
对所有收到的响应进行预处理
做一些增强用户体验的操作,例如显示一个进度条…

浏览器navigator对象

navigator

Navigator 对象包含有关浏览器的信息。

注释:没有应用于 navigator 对象的公开标准,不过所有浏览器都支持该对象。

集合:plugins[]

描述:返回对文档中所有嵌入式对象的引用。
该集合是一个 Plugin 对象的数组,其中的元素代表浏览器已经安装的插件。Plug-in 对象提供的是有关插件的信息,其中包括它所支持的 MIME 类型的列表。
虽然 plugins[] 数组是由 IE 4 定义的,但是在 IE 4 中它却总是空的,因为 IE 4 不支持插件和 Plugin 对象。

Cesium基础操作

1. 初始化viewer对象

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//创建cesium Viewer
viewer = new Cesium.Viewer(‘cesiumContainer’,{
animation:false, //是否创建动画小器件,左下角仪表
baseLayerPicker:false, //是否显示图层选择器
fullscreenButton:false, //是否显示全屏按钮
geocoder:false, //是否显示geocoder小器件,右上角查询按钮
homeButton:false, //是否显示Home按钮
infoBox : false, //是否显示信息框
sceneModePicker:false, //是否显示3D/2D选择器
selectionIndicator : false , //是否显示选取指示器组件
timeline:false, //是否显示时间轴
navigationHelpButton:false, //是否显示右上角的帮助按钮
scene3DOnly : true, //如果设置为true,则所有几何图形以3D模式绘制以节约GPU资源
navigationInstructionsInitiallyVisible:false,
showRenderLoopErrors:false,
imageryProvider : new Cesium.OpenStreetMapImageryProvider({ url : '//a.tile.openstreetmap.org/' }) //加载自定义地图瓦片需要指定一个自定义图片服务器//URL 为瓦片数据服务器地址
});

AngularJS源码之ng-style

ng-style源码

1
2
3
4
5
6
7
8
9
scope.$watch(attr.ngStyle, function ngStyleWatchAction(newStyles, oldStyles) {
if (oldStyles && (newStyles !== oldStyles)) {
forEach(oldStyles, function(val, style) {
element.css(style, '');
});
}
if (newStyles)
element.css(newStyles);
}, true);

angularjs中ng-model的坑

[转]
angular中指令被用的最多的除了ng-repeat之外就非他莫属了吧,由于各种业务的需求,我们经常需要去写一些继承ngModel的指令,来满足各种奇葩需求,最多的莫过于表单的验证啦,另外你在封装一些jquery插件的时候,也是需要继承ngModel的,最典型的莫过于 datepicker、fileUpload等等。…

AngularJS指令进阶–ngModelController详解

在自定义Angular指令时,其中有一个叫做require的字段,这个字段的作用是用于指令之间的相互交流。举个简单的例子,假如我们现在需要编写两个指令,在linking函数中有很多重合的方法,为了避免重复自己(著名的DRY原则),我们可以将这个重复的方法写在第三个指令的controller中,然后在另外两个需要的指令中require这个拥有controller字段的指令,最后通过linking函数的第四个参数就可以引用这些重合的方法。代码的结构大致如下: