- 博客(53)
- 收藏
- 关注
原创 Angular 中 ng-container的用法
<p> I turned the corner <ng-container *ngIf="hero"> and saw {{hero.name}}. I waved </ng-container> and continued on my way.</p>当然这里 ng-container可以用div替换, 但是 替换后 html的结构就不一样了。...
2021-11-25 15:24:44
776
原创 Angular中 ng-template 的用法
<div *ngIf="canEdit; else noEdit"> <p>You can edit the following paragraph.</p></div><ng-template #noEdit> <p>The following paragraph is read only. Try clicking the button!</p></ng-template>
2021-11-23 13:35:30
796
原创 CSS-FlexBox 里一些属性的意义
justify-content center (default)flex-startflex-endspace-aroundspace-between
2021-06-04 16:32:00
156
原创 live server 的使用
为什么要装 因为在本地跑 javascript的时候遇到了如上的错误,from origin 'null' has been blocked by CORS policy: Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, chrome-untrusted, https.只有在本地搭建一个server才能解决 安装Live Server..
2021-04-12 22:54:37
2079
原创 在angular 中使用 npm link
需求是,需要在本地创建一个 angular 的 library,作为公共模块, 然后在其他application中引用它创建angular公共libraryng new my-workspace --create-application=falsecd my-workspaceng generate library my-lib在common library 的项目里的package.json里需要在dependencies引用第三方包的情况下必须在, ng-package.json里加白名
2021-01-15 10:16:14
628
原创 Ag-grid之在column添加icon
定义RowCellRenderclass RowCellRenderer { eGui: any; init(params: { param1: string, param2: string, param3: boolean }) { if (!params.isParamsDataNull) { this.eGui = document.createElement('span');this.eGui.innerHTML = `<i cl
2020-09-11 16:42:00
1461
原创 解决从excel导入\导出日期格式数据时的问题
从excel 导入日期会自动转换成一个数字(number格式) 这个数字是减掉1900年1月1日的天数后得到的例如 25569就是 1970-01-01无论你从哪个时区导入的日期, 都会被认为是格林威治时间, 所以在把数字转换成时间时需要转换成格林威治时间。this.datePipe.transform((serial - 25569) * 24 * 60 * 60 * 1000, 'yyyy-MM-dd', 'UTC/GMT')...
2020-09-11 15:38:16
5118
原创 从angular里传值Auth Api
问题是Auth api不接受json格式的 form post, 这种情况下 Http Header里的Content-Type必须是'application/x-www-form-urlencoded' headers: { Authorization: token, 'Content-Type': 'application/x-www-form-urlencoded', }然后..
2020-05-18 16:01:36
213
原创 RxJS操作符之mergeMap,switchMap,concatMap
const click$ = fromEvent(this.myButton.nativeElement, 'click'); const interval$ = interval(1000); //mergeMap 每个click生产的流(interval) 都会保留。 click$.pipe( mergeMap(() => interval$))...
2020-03-14 17:31:56
1189
原创 RxJS操作符之merge,map, mergeAll, mergeMap
直接上代码 const click$ = fromEvent(this.myButton.nativeElement, 'click'); const interval$ = interval(1000); //map的作用使鼠标每点击一次,产生一个interval,要将每个interval产生的值打出,需要两次subscribe click$.pipe( ...
2020-03-14 16:32:29
1291
原创 Angular 中的的Workspace,项目引用及debug
项目引用参照https://medium.com/@SirMaxxx/angular-6-creating-a-shareable-control-library-6a27f0ebe5c2debug参照https://developers.de/2018/09/05/angluar-library-debugging/
2020-01-07 18:01:17
334
原创 依赖注入不成功:Can't resolve all parameters for AppComponent
解决方法:tsconfig.json里emitDecoratorMetadata设置成true"emitDecoratorMetadata": true,改完需要重新 ng serve
2019-12-27 09:29:22
2389
原创 Angular 里的 BrowserModule 只能import一次
如果多次导入的话会得到:BrowserModule has already been loaded Error的错误,在工作中遇到的实际的case, 当导入一个npm包后,运行angular发现这个错误,如果将这个包里export的module从root module import, 不会报错,但是,当我使用lazy load,在业务模块中导入的时候就会报错了,解决放案1. 当我们自制...
2019-12-12 13:51:25
1013
原创 log4.net
Configuration sample <log4net> <appender name="FileAppender" type="log4net.Appender.FileAppender,log4net"> <file value="testlogfile.txt" /> <appendToFile value=...
2019-12-12 13:43:23
122
原创 .Net Console Application 里从剪贴板取数据
从剪贴板取数据可以使用System.Windows.Forms.Clipboard 对象 以下方法可做参考: internal static string RetrieveDataFromCilpboard() { IDataObject iData = Clipboard.GetDataObject(); if (iDat...
2019-12-11 11:44:46
168
原创 虚拟键盘鼠标之WindowsInput
在做.net automation时非常有用 GitHub地址:https://github.com/michaelnoonan/inputsimulator 代码示例: var sim = new InputSimulator(); Thread.Sleep(2000); sim.Mouse.MoveMouseBy(90, 20); ...
2019-12-11 11:35:55
949
原创 使用.net发邮件
方法一: 通过SmtpClient 对象来发送邮件 SmtpClient smtpClient = new SmtpClient("2.com"); smtpClient.Credentials = new System.Net.NetworkCredential("1@2.com", "pwd"); smtpClient.UseDefa...
2019-11-29 16:27:53
539
原创 用WebClient下载文件时遇到的问题
从Server端得到一个URL, 将其直接复制到浏览器中可正常下载文件,但是在C#中直接用WebClient下载该文件则得不到该文件,而是一页html。 原来原始的URL指向的是这一页html而不是客户端想要下载的文件,浏览器会帮助完成跳转,但是C# code不行。解决方法是用C# code 解析这个html,找出关键字拼凑出新的URL,再用Webclient下载 使用维系Cookie的Web...
2019-11-25 18:33:31
1374
1
原创 如何将Angular-cli的版本更新到最新
更新global 的angular -cli的版本 npm uninstall -g angular-clinpm cache clean or npm cache verify #(if npm > 5)npm install -g @angular/cli@latest 更新本地angular project的版本 rm -rf node_modules...
2019-09-24 16:43:54
588
原创 Linux学习(十):其他文件搜索命令之grep
文件搜索命令grep 语法: grep -iv 【指定字符串】[文件] 功能描述:在文件中搜寻字符串匹配的行并输出-i 不区分大小写, -v排除指定字符串grep -v ^# /etc/inittab 表示去掉#打头的所有行...
2019-09-15 18:13:07
130
原创 Linux学习(九):其他文件搜索命令之which,whereis
which 命令的使用which [命令名] 返回命令所在的目录以及别名 whereis命令的使用whereis[命令名] 返回命令所在的目录以及说明书
2019-09-15 17:28:42
139
原创 Linux学习(八):其他文件搜索命令之locate
安装yum install mlocate 使用方法:loacte [文件名] 数据信息都存放在这个文件里:/var/lib/mlocate/mlocate.db,刚新建的文件信息不会被写入到这个文件里,此时需要运行:updatedb locate 不能查找tmp目录下的文件: locate -i [文件名]不区分大小写 ...
2019-09-15 17:11:38
115
原创 git学习(五):远程操作
查看远程库 git remote -v 添加远程库 git remote add origin [地址名] : 此处origin相当于一个变量, 也可以叫其他名字 推送至远程库 git push origin [branch名] 将远程库克隆到本地 git clone [地址名]完整的把远程库下载到本地 创建origin远程地址别名 初始化本地...
2019-09-08 19:41:49
82
原创 C# Lambda表达式和表达式树(二):表达式树
以编程方式构建表达式树 System.Linq.Expressions命名空间包含了代表表达式的各个类,它们都继承自Expression Expression类包含两个属性Type属性代表表达式求值后的.NET类型,可把它视为一个返回类型,例如,如果一个表达式要获取一个字符串的Length属性,该表达式的类型是int。 NodeType属性返回所代表的表达式的种类。它是Express...
2019-09-05 18:00:26
1003
原创 .Net 第三方库运用:MVVMLight(一):RaisePropertyChanged和Set的区别
定义 protected virtual void RaisePropertyChanging<T>(Expression<Func<T>> propertyExpression); protected bool Set<T>(Expression<Func<T>> propertyExpression,...
2019-09-05 10:46:28
3736
原创 C# Lambda表达式和表达式树(一):从匿名函数到Lambda表达式的演化
作为委托的lambda表达式 从匿名函数到最简lambda表达式的演化 Func<string, int> returnLength = delegate(string text) { return text.Length; };//匿名函数 returnLength = (string text) => { return text.Lengt...
2019-09-04 17:30:39
223
原创 二叉树的前,中,后序排列
前序遍历 先输出根节点,在依次前序遍历左子树和右子树。 中序遍历: 先中序遍历左子树,在输出根节点,最后中序遍历又子树 后序遍历: 先后序遍历左子树,接着后序遍历右子树,最后输出根节点 以图为例: 前序排列:1,2,4,5,3,6,7 中序排列:4,2,5,1,3,7,6 后序排列:4,5,2,7,6,3,1...
2019-09-04 10:54:35
3264
原创 C#迭代器的实现(三)真实的迭代器示例
迭代时刻表中的日期 public class TimeTable { public DateTime StartDate { get; set; } public DateTime EndDate { get; set; } public IEnumerable<DateTime> DateRange ...
2019-09-03 15:54:13
214
原创 C#迭代器的实现(二)观察迭代器的工作流程
显示迭代器及其调用者之间的调用序列 public static readonly string Padding = new string(' ', 30); public static IEnumerable<int> CreateEnumerable() { Console.WriteLine("{0} Start o...
2019-09-02 18:12:46
166
原创 C#迭代器的实现(一)从1.0到2.0实现方法的不同
C# 1.0手写迭代器的痛苦 public class IterationSample : IEnumerable { object[] values; int startingPoint; public IterationSample(object[] values, int startingPoint) {...
2019-09-02 16:36:17
198
原创 C#多线程编成之Async,Await(五)异步匿名函数
创建异步匿名函数,Lambda表达式 Func<Task> lambda = async () => await Task.Delay(1000); Func<Task<int>> anonMethod = async delegate() { Console....
2019-08-27 16:35:03
1518
原创 C#多线程编成之Async,Await(四)异常
重新包装任务失败时产生的多个异常(《C# in depth page. 424〉) 捕获包含多个异常的AggregateException(《C# in depth page. 424〉) 以熟悉的方式处理异步异常 static async Task MainAsync() { Task<string> ...
2019-08-27 13:36:57
420
原创 C#多线程编成之Async,Await(三)可等待模式
await表达式的流 Task有一个方法: GetAwaiter() 此方法返回TaskAwaiter, 而TaskAwaiter实现了INotifyCompletion接口,从而实现了如下两个方法:GetResult()和OnCompletedpublic class Task<TResult> : Task{ ... public TaskAwai...
2019-08-26 17:48:29
533
原创 C#多线程编成之Async,Await(二)
异步执行的流程 执行某些操作 开始执行异步操作,并记住返回的token(通常为Task,或者Task<TResult>) 可能会执行其他操作,相当于在await之前再做一些其他的操作,一般不这么做。 等待异步操作完成(通过await token) 执行其他错作 完成 异步方法 static async Task<int> GetPageLen...
2019-08-23 18:58:47
348
原创 .Net 第三方库运用:ClosedXML
什么是Closed Xml ClosedXML makes it easier for developers to create Excel 2007/2010 files. It provides a nice object oriented way to manipulate the files (similar to VBA) without dealing with the h...
2019-08-23 15:55:39
4151
原创 .Net 第三方库运用:Automation
寻找解决方案 QTP --- 又重又贵 Microsoft’s UI automation framework :使用起来非常麻烦 例子:here. Microsoft’s Coded UI Test --- 需要Visual Studio Enterprise: FYI Winium+uiautomationverify --- 开源 based on Microsoft’s UI...
2019-08-23 15:07:08
535
原创 Web前端学习:可观察对象(Observable)
可观察对象(Observable) 可观察对象支持在应用中的发布者和订阅者之间传递消息。 在需要进行事件处理、异步编程和处理多个值的时候,可观察对象相对其它技术有着显著的优点。 可观察对象是声明式的 —— 也就是说,虽然你定义了一个用于发布值的函数,但是在有消费者订阅它之前,这个函数并不会实际执行。 订阅之后,当这个函数执行完或取消订阅时,订阅者就会收到通知。 可观察对象可以发...
2019-08-21 18:54:49
734
原创 Web前端学习:RxJS 库
RxJS 库 RxJS 提供了一种对Observable类型的实现 创建可观察对象(Observable)的函数 从Promise创建Observable createanobservablefromapromise(): void { // Create an Observable out of a promise //fetch方法返回一个Promi...
2019-08-21 17:53:03
232
原创 C#多线程编成之Async,Await(一)
Async 标记一个方法为“不会阻塞的版本" 在执行时会瞬间返回一个任务 C#本身并不会为其启动新线程 几乎所有执行缓慢的方法都有Async的版本(.netframework自带) Async方法至少使用一次await关键字 Async方法一般返回Task Await Await后紧跟一个Task 同步的等待该任务完成,并获取到返回值 Await代码之后的代码仍然由原...
2019-08-21 10:01:07
405
原创 VSCode学习:Debug Angular in Chrome
Debug Angular in Chrome 在VSCode里安装Debugger for Chrome: 按 Extensions按钮(下图高亮部分),找到 Debugger for Chrome,安装 Launch Chrome against localhost Launch Chrome against localhost,在 launch.json里添加如下配...
2019-08-20 08:33:49
471
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人