1、ts里route跳转
import { Router} from '@angular/router';
public router: Router,
this.router.navigate(['/project/pm'],{queryParams:{'unique_no':unique_no});
页面
A页面
<a [routerLink]="['../aaa']" [queryParams]="{ id: this.data.aaa }">todo</a>
B页面
import {ActivatedRoute} from "@angular/router"
private routeInfo: ActivatedRoute,
private productId: number;
this.productId = this.routeInfo.snapshot.queryParams["id"];
2、option change event
(ngModelChange) = "selectAction()"
3、map/filiter
this.checkedItem = this.datas.filter(value => value.checked)
this.itemId = this.checkedItem.map( item => item.id )
.some .foreach
4、年月日转格式
import { DatePipe } from '@angular/common';
constructor(
private datePipe: DatePipe,
) { }
'startDate': this.datePipe.transform(this.validateForm.value.startDate, 'yyyy-MM-dd HH:mm:ss'),
5、对象转数组
this.partners = Object.keys(res.data).map(key => res.data[key]);
6、删除远程分支
git remote rm origin
添加远程分支
git remote add origin
7、*ngIf = "aa"
aa = false
if (....){
aa = true;
}
8、this.validateFrom.patchValue
getValue
9 *ngFor="let data of SysGoods"
10 nzShowSearch nzAllowClear nz zorro选择器搜索与清楚
11 <button class="reset" nz-button (click)="resetForm($event)">重置</button>
resetForm(e: MouseEvent): void {
e.preventDefault();
this.validateForm.reset();
for (const key in this.validateForm.controls) {
this.validateForm.controls[ key ].markAsPristine();
this.validateForm.controls[ key ].updateValueAndValidity();
}
}
12 表单绑定对象
formControlName="classify"
*ngFor="let z of originData; let idx = index" [nzLabel]="z.shortName" [nzValue]="z"
13
if(curnentMondelModeId == "1"){
if(data.checked == true){
for( let b = 0 ;b<this.datas.length ; b++){
let checkItem = this.datas[b];
if( data.modeId != checkItem.modeId ){
checkItem.disabledItem = true;
}
}
}else {
let status = false;
for( let b = 0 ;b<this.datas.length ; b++){
let checkItem = this.datas[b];
if( checkItem.modeId == '1' && checkItem.checked == true ){
status = true;
break;
}
}
if( status == false) {
for( let b = 0 ;b<this.datas.length ; b++){
let checkItem = this.datas[b];
if( data.modeId != checkItem.modeId ){
checkItem.disabledItem = false;
}
}
}
}
}else if(curnentMondelModeId == "2" ){
if(data.checked == true){
for( let b = 0 ;b<this.datas.length ; b++){
let checkItem = this.datas[b];
if(data != checkItem){
checkItem.disabledItem = true;
}
}
}else {
for( let b = 0 ;b<this.datas.length ; b++){
let checkItem = this.datas[b];
if(data != checkItem){
checkItem.disabledItem = false;
}
}
}
14 请求
showModal(id): void {
let params = {
'id': id,
}
this.http.post('.../.../../..',params).subscribe((res:any) => {
if(res.errno === "0"){
}
}else {
this.modalService.error({
nzTitle: res.error,
});
}
})
}
15 两数组里 对象接
for(let i=0;i<this.payment.length;i++){
let item = this.payment[i];
for(let t=0;t<this.proof.length;t++){
let item2 = this.proof[t];
if(item.policyNo == item2.policyNo){
item.otherStatus = item2.status;
}
}
}
16、验证
this.form = fb.group({
member_mobile: [null, [Validators.required, Validators.pattern(/^1\d{10}$/)]],
member_name: [null, [Validators.required]],
partner_id: [null],
});
17、获取数据并置空
this.validateFrom.get('store_id').setValue(null);
partnerHasChange() {
if (this.partner.value) {
this.getStores()
}
this.validateFrom.get('store_id').setValue(null);
}
18,nzRequired 表单前带红*
<nz-form-label [nzSpan]="6" nzFor="member_name" nzRequired >客户姓名</nz-form-label>
19、提示填完带*
import {
FormBuilder,
FormGroup
} from '@angular/forms';
form: FormGroup;
let data = this.form.value;
data['image'] = this.fileList;
console.log(data);
if(!data['member_name'] || !data['member_mobile'] || !data['category_id'] || !data['menu_id'] || !data['status']){
this.message.error('请把带*的填写完整!');
}
20、需要<a> 下载时 ,防xss攻击
import { HttpClient } from '@angular/common/http'
private httpClient: HttpClient,
down() {
this.httpClient.post('/down', param).subscribe((res: any) => {
this.src = this.sanitizer.bypassSecurityTrustResourceUrl(res.data.src);
});
}
}
21、原有数组添加
this.data = first.concat(second).concat(three);
document.write(arr.concat(arr2,arr3)
)
22、form与sessionStorage结合使用(查询时要进一步操作(修改),返回要保留查询的值)
上面 class 分页处:
sessionStorage.setItem('consume', JSON.stringify(params))
ngOnInit:
formControlName="website"
let parms = {
pageSize: 10,
pageIndex: 1,
name: null
};
let consume = JSON.parse(sessionStorage.getItem('consume'));
consume = consume ? consume : parms;
let name = consume.name ? consume.name : null;
this.validateForm = this.fb.group({
website: [name],
});
this.approve();
// if (this.q.pageIndex != null && (consume['mobile'] != null || consume['outOrderNo'] != null || consume['projectName'] != null || consume['status'] != null)) {
// this.approve(null,2);
// }else{
// this.approve(null,null)
// }
23、.substring(0, 16);
0~16
.substring(3);
从3开始
24、第2种保留值 like 22
import {Router,ActivatedRoute} from "@angular/router";
constructor(
private routeInfo: ActivatedRoute,
private router: Router
) { }
上部分页:
this.router.navigate([],{ queryParams: params});
this.routeInfo.queryParams.subscribe((params) => {
this.validateForm = this.fb.group({
website: [params['name']],
name: [ null ],
});
this.q = {
pageIndex: params['page'],
pageSize: params['limit'],
totalItems: 0
};
});
注意 routeInfo 的赋值
let data = {
'name' : this.validateForm.value.website,
};
postman跑数组,body raw 格式
{
"goods":[
{
"equityFlag": "0",
"equityNumber": "1",
"equityOverdue": "year",
"equityQuantity": "0",
"expireNumber": "7",
"expireOverdue": "day",
"goodsId": "41631",
"newEquityAmount": "0.00",
"proportion": "10.00",
"startFlag": "0",
"startNumber": "",
"startOverdue": "",
"startTime": ""
},
{
"equityFlag": "0",
"equityNumber": "1",
"equityOverdue": "year",
"equityQuantity": "0",
"expireNumber": "7",
"expireOverdue": "day",
"goodsId": "41630",
"newEquityAmount": "0.00",
"proportion": "90.00",
"startFlag": "0",
"startNumber": "",
"startOverdue": "",
"startTime": ""
}
],
"projectId": "396"
}