angular6踩坑记

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"
}
 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值