1130分享总结
来源:互联网 发布:宠物店网络信息平台 编辑:程序博客网 时间:2024/05/05 03:28
1、 ui-sref-active只对同级路由有效
2、 Filter只能过滤数组
3、 ng-switch-when
<element ng-switch="expression"> <element ng-switch-when="value"></element> <element ng-switch-when="value"></element> <element ng-switch-when="value"></element> <element ng-switch-default></element> </element>
4、 ng-src=”{{item.imgSrc||\’assets/img/barBg.png\’}}”
src="{{vm.url}}"第一次加载模板的时候就会去请求图片 加花括号的原因 attr.$observe('ng-src',function(value){ attr.$set(name, value); }) 延伸:$observe和$watch的区别 $watch更复杂一点,它可以监视表达式,这个表达式可以是函数或者字符串 $observe异步解析、仅用在指令内部
5、 package.json
- name(必填)
- 不要在name中包含js, node字样;
- 这个名字最终会是URL的一部分,命令行的参数,目录名,所以不能以点号或下划线开头;
- 这个名字可能在require()方法中被调用,所以应该尽可能短;
- 包名必须唯一
- version(必填)
- description(可选)
- keywords(可选)
homepage(可选)
不带网络协议的url
bugs(可选)
问题追踪系统的url或邮箱地址,用于npm bugs { "url" :"http://github.com/owner/project/issues", "email" :"project@hostname.com" }
- license(可选)
- author,contributors(可选)
files(可选)
项目包含的一组文件。如果是文件夹,文件夹下的文件也会被包含。如果需要把某些文件不包含在项目中,添加一个”.npmignore”文件。这个文件和”gitignore”类似
main(可选)
这个字段的值是你程序主入口模块的ID。如果其他用户需要你的包,当用户调用require()方法时,返回的就是这个模块的导出(exports)。
bin(可选)
很多的包都会有执行文件需要安装到PATH中去。这个字段对应的是一个Map,每个元素对应一个{ 命令名:文件名 }。{ "bin" : { "npm" : "./cli.js" } }
directories(可选)
用于指示包的目录结构:
directories.lib(可选)
指示库文件的位置。
directories.lib(可选)
和前面的bin是一样的,但如果前面已经有bin,那么这个就无效。除了以上两个,还有Directories.doc& Directories.man & Directories.example。
repository(可选)
用于指示代码存放的位置。"repository" : { "type" : "git" , "url" : "http://github.com/npm/npm.git" }"repository" : { "type" : "svn" , "url" : "http://v8.googlecode.com/svn/trunk/" }对象类型,Key是生命周期事件名,value是在事件点要跑的命令。参考npm-scripts。
config(可选)
对象类型对象中的值在Scripts的整个周期中皆可用,专门用于给Scripts提供配置参数。
dependencies(可选)
指示当前包所依赖的其他包。{ "dependencies" : { "foo" : "1.0.0 - 2.9999.9999" , "bar" : ">=1.0.2 <2.1.2" , "baz" : ">1.0.2 <=2.3.4" , "boo" : "2.0.1" , "qux" : "<1.0.0 || >=2.3.1 <2.4.5 || >=2.5.2 <3.0.0" , "asd" : "http://asdf.com/asdf.tar.gz" , "til" : "~1.2" , "elf" : "~1.2.3" , "two" : "2.x" , "thr" : "3.3.x" }}版本格式可以是下面任一种: version 完全匹配 >version 大于这个版本 >=version大于或等于这个版本 <version <=version ~version 非常接近这个版本 ^version 与当前版本兼容 1.2.x X代表任意数字,因此1.2.1, 1.2.3等都可以 http://... Unix系统下使用的tarball的URL。 * 任何版本都可以 ""任何版本都可以 version1 - version2 等价于 >=version1 <=version2. range1 || range2 满足任意一个即可 git... Git地址 user/repo
devDependencies(可选)
如果只需要下载使用某些模块,而不下载这些模块的测试和文档框架,放在这个下面比较不错。
peerDependencies(可选)
兼容性依赖。如果你的包是插件,适合这种方式。
bundledDependencies(可选)
发布包时同时打包的其他依赖。
optionalDependencies(可选)
如果你想在某些依赖即使没有找到,或则安装失败的情况下,npm都继续执行。那么这些依赖适合放在这里。
engines(可选)
既可以指定node版本:{ "engines" : {"node" : ">=0.10.3 <0.12" } }也可以指定npm版本:{ "engines" : {"npm" : "~1.0.20" } }
engineStrick(可选)
布尔值。如果你肯定你的程序只能在制定的engine上运行,设置为true。
Os(可选)
指定模块可以在什么操作系统上运行:"os" : [ "darwin","linux" ]"os" : [ "!win32" ]
CPU(可选)
指定CPU型号。"cpu" : [ "x64","ia32" ]"cpu" : [ "!arm","!mips" ]
preferGlobal(可选)
布尔值。如果你的包是个命令行应用程序,需要全局安装,就可以设为true。
private(可选)
布尔值。如果private为true,npm会拒绝发布。这可以防止私有repositories不小心被发布出去。
publishConfig(可选)
发布时使用的配置值放这。默认值"scripts":{"start": "node server.js"}如果你的包里有server.js文件,npm默认将执行: node server.js."scripts":{"preinstall":"node-gyp rebuild"}如果包里有binding.gyp,npm默认在安装本地文件系统中指定的目录包含的模块preinstall命令时,使用node-gyp做编译。
6、 npm命令
npm -v 查看npm版本npm install XX -g 全局安装 根据bin文件的express来配置,统安装在某个目录npm install <tarball file>本地文件npm install <tarball url> 远程文件npm install <folder> 安装本地文件系统中指定的目录包含的模块npm install <name> [–save|–save-dev|–save-optional]安装并更新package.json中的版本配置 -save 安装package.json的dependencies选项中的模块 -save-dev 安装package.json的devDependencies选项中的模块 -save-optional安装package.json的optionalDependencies选项中的模块 npm install <name>@<tag>指定安装模块的config的tag的版本 npm install <name>@<version>安装模块的指定版本 npm install <name>@<version range> 如npm install async@">=0.2.0 <0.2.9"-force 强制拉取远程资源,即使本地已经安装这个模块设置代理:npm config set proxy=http://proxy.tencent.com:8080设置npm的镜像地址npm config set registry http://npm.oa.com获取npm配置npm config get <key>删除npm配置npm config delete <key>执行脚本npm start [<name>]npm stop [<name>]npm test [<name>]……运行start时,对应的脚本为package.json文件中scripts的start字段中
7、 练习
已知数组var =[1,2,3,5,6,7,8,1,6,4,2,a,1,b,c,d,e,b,c,a,a,b,0]请至少使用2+种方法输出,每个元素重复的个数.
var arr=[1,2,3,5,6,7,8,1,6,4,2,'a',1,'b','c','d','e','b','c','a','a','b',0];//method1 var tmpArr=[]; function filterArr(lastVal){ for(var i=0;i<arr.length;i++){ if(tmpArr[arr[i]]){ tmpArr[arr[i]]++; }else{ tmpArr[arr[i]]=1; } } } filterArr(arr[0]); console.log(tmpArr); //method2 var tmpArr = []; function filterArr(n){ if(n<=arr.length-1){ if(tmpArr[arr[n]]){ tmpArr[arr[n]]++; }else{ tmpArr[arr[n]]=1; } filterArr(n+1); return 1; } } filterArr(0); console.log(tmpArr);
8、链接
node.js的web框架
web notifications应用文档
ionic模态窗口
js的排序算法
9、nginx配置
nginx.conf文件中,Nginx中有少数的几个高级配置在模块部分之上。 user www-data; pid /var/run/nginx.pid; worker_processes auto; worker_rlimit_nofile 100000; Events模块 events模块中包含nginx中所有处理连接的设置。 events { worker_connections 2048; multi_accept on; use epoll; worker_connections设置可由一个worker进程同时打开的最大连接数。如果设置了上面提到的worker_rlimit_nofile,我们可以将这个值设得很高。
10、angular方面&ES6
angularjs不同页面间参数的传递
在路由中定义要接收的参数
.state('userDetails', { url: '/userDetails?phone', //以?为标识接收参数 templateUrl: 'assets/views/userDetails.html', controller:'userDetailsController' //也可以用 params:{'phone':{}} })
在控制器中传递参数
.controller('pageOneCtrl', function ($scope, $state) { $scope.toPage2 = function () { $state.go('page2', {phone:$scope.num}); }; });
通过$stateParams获得参数phone
myRouterApp.controller('userDetailsController',function($scope,$stateParams){ console.log($stateParams.phone); });
如果要传递多个参数,则用对象的形式传递
(1)在app.js中定义路由信息,并在接收的页面(即page2.html)定义接收参数。 .state('page1', { url: '/page1', templateUrl: 'templates/page1.html', controller: 'pageOneCtrl' }) .state('page2', { url: '/page2', templateUrl: 'templates/page2.html', controller: 'pageTwoCtrl' , params:{args:{}} }) (2)在page1中定义点击事件。 html中: ng-click=“toPage2(name,number)” 控制器中: .controller('pageOneCtrl', function ($scope, $state) { $scope.toPage2 = function (name,number) { $state.go('page2', { args:{ NAME:name, NUMBER:number }); }; }); (3)在Page2中通过$stateParams获得参数ID。 .controller('pageTwoCtrl’, function ($scope, $state, $stateParams) { var receivedName = $stateParams.args.NAME; var receivedNumber = $stateParams.args.NUMBER; });
ES6 标准部分应用
多行字符串
字符串换行时,不再使用\n,而是使用倒引号`..`,例如: 1 2 3 alert(`这是一个 多行 字符串`);
模版字符串
不再使用“+”来拼接字符串与变量,而是使用倒引号`..`与${}结合,用${}将变量包含起来,例如 var name = '小明'; var age = 20; alert(`name:${name},age:${age}`);
Map
以键值对的结构存在,可以用get方法获取某属性值,用set方法设置或添加属性值 var s = new Map([['name','lmy'],['age',20],['sex','female']]); alert(s.get('age')); s.set('grade',4); alert(s.get('grade'));
Set
一组key的集合,没有value值,会自动过滤重复的值,不能用下标遍历 var a = new Set([1,2,3,3,'3']); console.log(a); //1,2,3,'3' a.add(4); console.log(a); //1,2,3,'3',4
forEach
接收一个函数,每次迭代回调该函数,此函数接收三个参数 var a = ['A', 'B', 'C']; var s = new Set(['A', 'B', 'C']); var m = new Map([['name', 'x'], ['age', 'y'], ['grade', 'z']]); a.forEach(function (element, index, array) { // element: 指向当前元素的值 // index: 指向当前索引 // array: 指向Array对象本身 alert(element); }); a为数组,element为当前元素,index为元素下标,array为数组全部数值 s为Set类型,没有下标,所以element与index返回的均为当前元素,array返回Set类型的对象 m为Map类型,element为当前元素的值,index为当前元素的键,array为Map类型的对象
11、RegExp 对象表示正则表达式.
语法:
1.字面量表示法 var reg = /d+/i; 2.实例化RegExp对象 var reg = new RegExp( “d+”, “igm” );
常用方法:
1、exec( ) 方法检索字符串中的指定值。返回值是被找到的值。如果没有发现匹配,则返回 null。2、test( ) 方法比 exec( ) 方法简单,该方法只会返回一个Boolean值,如果匹配成功,则返回true,否则,返回false。
非打印字符:
\cx 匹配由x指明的控制字符。例如, \cM 匹配一个 Control-M 或回车符。x 的值必须为 A-Z 或 a-z 之一。否则,将 c 视为一个原义的 'c' 字符。\f 匹配一个换页符。等价于 \x0c 和 \cL。\n 匹配一个换行符。等价于 \x0a 和 \cJ。\r 匹配一个回车符。等价于 \x0d 和 \cM。\s 匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。\S 匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。\t 匹配一个制表符。等价于 \x09 和 \cI。\v 匹配一个垂直制表符。等价于 \x0b 和 \cK。
特殊字符:
$ 匹配输入字符串的结尾位置。如果设置了 RegExp 对象的 Multiline 属性,则 $ 也匹配 '\n' 或 '\r'。要匹配 $ 字符本身,请使用 \$。( ) 标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。要匹配这些字符,请使用 \( 和 \)。* 匹配前面的子表达式零次或多次。要匹配 * 字符,请使用 \*。+ 匹配前面的子表达式一次或多次。要匹配 + 字符,请使用 \+。. 匹配除换行符 \n 之外的任何单字符。要匹配 . ,请使用 \. 。[ 标记一个中括号表达式的开始。要匹配 [,请使用 \[。? 匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。要匹配 ? 字符,请使用 \?。\ 将下一个字符标记为或特殊字符、或原义字符、或向后引用、或八进制转义符。例如, 'n' 匹配字符 'n'。'\n' 匹配换行符。序列 '\\' 匹配 "\",而 '\(' 则匹配 "("。^ 匹配输入字符串的开始位置,除非在方括号表达式中使用,此时它表示不接受该字符集合。要匹配 ^ 字符本身,请使用 \^。{ 标记限定符表达式的开始。要匹配 {,请使用 \{。| 指明两项之间的一个选择。要匹配 |,请使用 |。
限定符:
{n} n 是一个非负整数。匹配确定的 n 次。例如,'o{2}' 不能匹配 "Bob" 中的 'o',但是能匹配 "food" 中的两个 o。{n,} n 是一个非负整数。至少匹配n 次。例如,'o{2,}' 不能匹配 "Bob" 中的 'o',但能匹配 "foooood" 中的所有 o。'o{1,}' 等价于 'o+'。'o{0,}' 则等价于 'o*'。{n,m} m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。例如,"o{1,3}" 将匹配 "fooooood" 中的前三个 o。'o{0,1}' 等价于 'o?'。请注意在逗号和两个数之间不能有空格。
定位符:
\b 匹配一个字边界,即字与空格间的位置。\B 非字边界匹配。
- 1130分享总结
- CDC用法总结 分享
- 前辈工作经验分享总结
- 总结与分享
- 面试总结分享
- 微信分享总结
- 学习+思考+总结+分享
- greenDAO学习分享总结
- 学会总结,学会分享
- 指针总结和分享
- 友盟5.0分享 总结
- Android分享机制总结
- 工作半年,总结分享
- 分享截屏总结
- sharesdk 分享总结
- 微信友盟分享失败总结
- HttpClient4 学习分享总结
- 1123分享总结
- JQuery datatables 使用Fixedcolumns固定列控件 多选框选中问题解决方案
- linux下,使用php将C扩展打包成.so文件补充——动态库
- 判断一个小于5位的正整数是几位数
- 51Nod1027 大数乘法
- Kafka+Spark Streaming+Redis实时计算整合实践
- 1130分享总结
- wireshark 在mac上使用
- xgoost原理篇
- [编程题] 跳石板
- 在Ubuntu KyLin 14.04上安装CUDA
- 怎样解决无法获取MYSQL字段别名问题
- Cocos Creator 监听和发射事件(官方文档摘录)
- react+redux教程
- 润乾报表实现模态窗口提交填报表在本窗口刷新