<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[sunscheung的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/sunscheung</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; sunscheung]]></copyright><item><title><![CDATA[Handsontable 的数据保存(增删改查+导出excel)]]></title><link>https://blog.youkuaiyun.com/sunscheung/article/details/115554540</link><guid>https://blog.youkuaiyun.com/sunscheung/article/details/115554540</guid><author>sunscheung</author><pubDate>Fri, 09 Apr 2021 16:53:39 +0800</pubDate><description><![CDATA[项目用到handsontable 插件&nbsp;
根据官网 API写的handsontable初始化,&nbsp;
数据展示,&nbsp;
ajax请求,&nbsp;
参数封装,&nbsp;
Controller参数接受
全局容器
var AllData = {};
var updatelist = [];
var delidslist =[];
var insertlist=[];

handsontable 的初始化
function onIniHandsonTable(data) {
KaTeX p]]></description><category></category></item><item><title><![CDATA[消息不能及时回复，见谅]]></title><link>https://blog.youkuaiyun.com/sunscheung/article/details/82983018</link><guid>https://blog.youkuaiyun.com/sunscheung/article/details/82983018</guid><author>sunscheung</author><pubDate>Tue, 09 Oct 2018 15:24:48 +0800</pubDate><description><![CDATA[由于公司网络原因，无法登陆具有上传功能的平台比如百度云、优快云等，所以消息多半无法及时回复，见谅。
博客及记录包括转载、摘录内容本人暂时在github上，内容如果涉及你的授权请及时与我联系。附github：
https://github.com/sunscheung/notes

...]]></description><category></category></item><item><title><![CDATA[pm2常用的命令用法介绍]]></title><link>https://blog.youkuaiyun.com/sunscheung/article/details/79171608</link><guid>https://blog.youkuaiyun.com/sunscheung/article/details/79171608</guid><author>sunscheung</author><pubDate>Fri, 26 Jan 2018 14:00:32 +0800</pubDate><description><![CDATA[pm2常用的命令用法介绍

pm2 是一个带有负载均衡功能的Node应用的进程管理器.当你要把你的独立代码利用全部的服务器上的所有CPU,并保证进程永远都活着,0秒的重载, PM2是完美的,下面我们来看pm2常用的命令用法介绍吧。

PM2 （github上的源码）是开源的基于Nodejs的进程管理器，包括守护进程，监控，日志的一整套完整的功能，基本是Nodejs应用程序不二的守护进程选择，事实上]]></description><category></category></item><item><title><![CDATA[实战演练:用gulp+webpack构建用户登录]]></title><link>https://blog.youkuaiyun.com/sunscheung/article/details/78880468</link><guid>https://blog.youkuaiyun.com/sunscheung/article/details/78880468</guid><author>sunscheung</author><pubDate>Sat, 23 Dec 2017 16:04:26 +0800</pubDate><description><![CDATA[转自：http://blog.youkuaiyun.com/github_26672553/article/details/52253737




1.先看目录结构 
 
src目录下是源文件，最终要”编译”到build目录下。 
tpl/login.html是登录模板文件，主要代码如下
    h2>用户登录h2>
    p>用户名：p>
    p>input type="text"]]></description><category></category></item><item><title><![CDATA[webpack+gulp实现自动构建部署]]></title><link>https://blog.youkuaiyun.com/sunscheung/article/details/78880414</link><guid>https://blog.youkuaiyun.com/sunscheung/article/details/78880414</guid><author>sunscheung</author><pubDate>Sat, 23 Dec 2017 15:58:54 +0800</pubDate><description><![CDATA[项目结构说明 
    . 
    ├── gulpfile.js               # gulp任务配置 
    ├── mock/                     # 假数据文件 
    ├── package.json              # 项目配置 
    ├── README.md                 # 项目说明 
    ├── src]]></description><category></category></item><item><title><![CDATA[webpack的常用命令]]></title><link>https://blog.youkuaiyun.com/sunscheung/article/details/78879889</link><guid>https://blog.youkuaiyun.com/sunscheung/article/details/78879889</guid><author>sunscheung</author><pubDate>Sat, 23 Dec 2017 14:44:03 +0800</pubDate><description><![CDATA[基本步骤：1.初始化package.json*npm init -y
2.安装webpack依赖*npm install webpack --save-dev *npm info webpack : 查看webpack 信息 *npm install webpack@3.10.0 --save-dev : 安装指定版本的webpack
3.安装webpack开发工具*npm install webp]]></description><category></category></item><item><title><![CDATA[handsontable测试]]></title><link>https://blog.youkuaiyun.com/sunscheung/article/details/78873323</link><guid>https://blog.youkuaiyun.com/sunscheung/article/details/78873323</guid><author>sunscheung</author><pubDate>Fri, 22 Dec 2017 14:56:30 +0800</pubDate><description><![CDATA[body {background: white; margin: 20px;}
h2 {margin: 20px 0;}

  













body {background: white; margin: 20px;}
h2 {margin: 20px 0;}

Select editor

Select editor should be]]></description><category></category></item><item><title><![CDATA[Git 工作流的一些经验分享]]></title><link>https://blog.youkuaiyun.com/sunscheung/article/details/78654565</link><guid>https://blog.youkuaiyun.com/sunscheung/article/details/78654565</guid><author>sunscheung</author><pubDate>Tue, 28 Nov 2017 14:17:54 +0800</pubDate><description><![CDATA[Git 工作流的一些经验分享


笔者使用git有一段时间了，踩过不少坑，这里分享下我在git工作流方面的一些经验。


什么是Git工作流？

Git工作流你可以理解为工作中团队成员遵守的一种代码管理方案，在Git中有以下几种工作流方案作为方案指导：

集中式工作流功能开发工作流Gitflow工作流Forking工作流

下面针对性说下每个工作流可能使用到的场景和适用性：]]></description><category></category></item><item><title><![CDATA[一劳永逸的搞定 flex 布局]]></title><link>https://blog.youkuaiyun.com/sunscheung/article/details/78644529</link><guid>https://blog.youkuaiyun.com/sunscheung/article/details/78644529</guid><author>sunscheung</author><pubDate>Mon, 27 Nov 2017 14:13:45 +0800</pubDate><description><![CDATA[一劳永逸的搞定 flex 布局 


一切都始于这样一个问题：怎样通过 CSS 简单而优雅的实现水平、垂直同时居中。记得刚开始学习 CSS 的时候，看到 float 属性不由得感觉眼前一亮，顺理成章的联想到
 Word 文档排版中用到的的左对齐、右对齐和居中对齐，然而很快就失望的发现 CSS 中并不存在 float:
 center 的写法，那么 text-align: center、v]]></description><category></category></item><item><title><![CDATA[session, sessionID和cookie]]></title><link>https://blog.youkuaiyun.com/sunscheung/article/details/78056523</link><guid>https://blog.youkuaiyun.com/sunscheung/article/details/78056523</guid><author>sunscheung</author><pubDate>Thu, 21 Sep 2017 20:27:43 +0800</pubDate><description><![CDATA[一、cookie机制和session机制的区别
*************************************************************************************
具体来说cookie机制采用的是在客户端保持状态的方案，而session机制采用的是在服务器端保持状态的方案。
同时我们也看到，由于才服务器端保持状态的方案在客户端也需要保存]]></description><category></category></item><item><title><![CDATA[js的一些坑]]></title><link>https://blog.youkuaiyun.com/sunscheung/article/details/78049368</link><guid>https://blog.youkuaiyun.com/sunscheung/article/details/78049368</guid><author>sunscheung</author><pubDate>Thu, 21 Sep 2017 10:52:24 +0800</pubDate><description><![CDATA[本文作者：Aurélien Hervé 
编译：胡子大哈

翻译原文：http://huziketang.com/blog/posts/detail?postId=58e06b98a58c240ae35bb8dd 
英文连接：Who
 said javascript was easy ?


1. 你是否尝试过对一个数字数组进行排序呢？

JavaScript 中的 sort(]]></description><category></category></item><item><title><![CDATA[我理解中的“大前端”/“大无线”]]></title><link>https://blog.youkuaiyun.com/sunscheung/article/details/77895594</link><guid>https://blog.youkuaiyun.com/sunscheung/article/details/77895594</guid><author>sunscheung</author><pubDate>Fri, 08 Sep 2017 15:43:42 +0800</pubDate><description><![CDATA[内容包含五部分：前言，NodeJS职能变化，ReactNative的大规模应用，专门的架构组职能，总结。主要是介绍我所在团队最近的一些变化和思考。前言 
最近，我所在的团队做了一些结构调整，其实我一直想讲讲这次调整，希望能够带给同行一些思考，但因调整后很多事情还未走上正轨，一直拖延着，现在终于有时间把一些想法写下来记录成文字。今天早晨，还看到一篇文章，讲“大前端”，文中展望了近年来“前端”影响的领域]]></description><category></category></item><item><title><![CDATA[生成某个范围内N个不重复随机数与生成固定长度数组]]></title><link>https://blog.youkuaiyun.com/sunscheung/article/details/77839802</link><guid>https://blog.youkuaiyun.com/sunscheung/article/details/77839802</guid><author>sunscheung</author><pubDate>Mon, 04 Sep 2017 17:32:57 +0800</pubDate><description><![CDATA[生成某个范围内N个不重复随机数与生成固定长度数组function getRndNum(num,min,max){
    var n = [];
    for(var i = min; i < max; i++){
        n.push(i);
    }
    n.sort(function(){
        return 0.5 - Math.random()
    });]]></description><category></category></item><item><title><![CDATA[Angular使用Promise解决多个异步回调问题]]></title><link>https://blog.youkuaiyun.com/sunscheung/article/details/77834609</link><guid>https://blog.youkuaiyun.com/sunscheung/article/details/77834609</guid><author>sunscheung</author><pubDate>Mon, 04 Sep 2017 10:56:35 +0800</pubDate><description><![CDATA[Promise的基本用法var p1 = new Promise((resolve, reject) =&gt; {
  setTimeout(resolve, 1000, 'done');
  })
p1.then(data=&gt;{
  console.log(data); // done
})
//angular中的promise使用
function pAjax(dataUrl,data) {]]></description><category></category></item><item><title><![CDATA[改写ui-grid headerCellTemplate]]></title><link>https://blog.youkuaiyun.com/sunscheung/article/details/77601478</link><guid>https://blog.youkuaiyun.com/sunscheung/article/details/77601478</guid><author>sunscheung</author><pubDate>Sat, 26 Aug 2017 15:15:13 +0800</pubDate><description><![CDATA[改写ui-grid headerCellTemplate  myHeaderCellTemplate  中为uigrid表头模板，此处copy过来，改写           


/**改写ui-grid myHeaderCellTemplate,注意必须增加 trustHtml过滤器(在模块中增加)

* 取代原有的 CUSTOM_FILTERS ***
     * myApp.f]]></description><category></category></item><item><title><![CDATA[base64转blob Ajax上传文件，服务器端接收不到]]></title><link>https://blog.youkuaiyun.com/sunscheung/article/details/76909998</link><guid>https://blog.youkuaiyun.com/sunscheung/article/details/76909998</guid><author>sunscheung</author><pubDate>Tue, 08 Aug 2017 15:28:34 +0800</pubDate><description><![CDATA[function convertBase64UrlToFileOrBlob(dataURI,type=0) { 
	var arr = dataURI.split(','), mime = arr[0].match(/:(.*?);/)[1],
		  bstr = atob(arr[1]),fileExt = mime.split('/')[1], n = bstr.length, u8arr]]></description><category></category></item><item><title><![CDATA[Angular 组件间通信]]></title><link>https://blog.youkuaiyun.com/sunscheung/article/details/76649245</link><guid>https://blog.youkuaiyun.com/sunscheung/article/details/76649245</guid><author>sunscheung</author><pubDate>Thu, 03 Aug 2017 20:36:41 +0800</pubDate><description><![CDATA[Angular 组件间通信 

原文链接


阅读原文：Getting Components to Communicate
 in Angular


核心要点：

由于Angular是基于组件的应用架构，因此可以在组件之间进行进行数据传递。你可以使用@Input()将数据传递到子组件中。你可以使用@Output()从子组件中获取数据。随着应用变得越来越复杂，父/子组件之间的]]></description><category></category></item><item><title><![CDATA[Angularjs启动过程]]></title><link>https://blog.youkuaiyun.com/sunscheung/article/details/76576323</link><guid>https://blog.youkuaiyun.com/sunscheung/article/details/76576323</guid><author>sunscheung</author><pubDate>Wed, 02 Aug 2017 13:49:02 +0800</pubDate><description><![CDATA[启动过程（v1.3.9）
步骤一


用自执行函数的形式让整个代码在加载完成之后立即执行
in angular.js Line6
  (function(window, document, undefined)

在window上暴露一个唯一的全局对象angular，Line250
  angular = window.angular || (window.angular = {]]></description><category></category></item><item><title><![CDATA[生成某个范围内N个不重复随机数与生成固定长度数组]]></title><link>https://blog.youkuaiyun.com/sunscheung/article/details/76546592</link><guid>https://blog.youkuaiyun.com/sunscheung/article/details/76546592</guid><author>sunscheung</author><pubDate>Tue, 01 Aug 2017 17:20:17 +0800</pubDate><description><![CDATA[function

getRndNum(num,min,max){

    var

n = [];

    for(var

i = min; i 

        n.push(i);

    }

    n.sort(function(){

return

0.5 - Math.random()

});

    n.length]]></description><category></category></item><item><title><![CDATA[echarts重写图例点击事件]]></title><link>https://blog.youkuaiyun.com/sunscheung/article/details/76512306</link><guid>https://blog.youkuaiyun.com/sunscheung/article/details/76512306</guid><author>sunscheung</author><pubDate>Tue, 01 Aug 2017 11:03:16 +0800</pubDate><description><![CDATA[echarts version: 3.1.2

修改图例点击事件样例代码：

当第一次点击图例时，只显示点击的图例。当还剩一个图例被取消选中后，自动全选中所有图例。

  var triggerAction = function(action, selected) {
        legend = [];

        for ( name in selected) {
   ]]></description><category></category></item></channel></rss>