Angular 6 HttpClient仅在其不为null时设置参数日期

dps*_*dps 5 typescript angular angular6

我正在尝试将参数传递给URL。为此,我正在使用Angular HttpParams。仅当date不为null或未定义时,如何设置日期参数?

码:

let params = new HttpParams()
   .set('Id', Id)
   .set('name', name)

if (startDate !== null) {
    params.set('startDate', startDate.toDateString());
}

if (endDate !== null) {
    params.set('endDate', endDate.toDateString());
}
Run Code Online (Sandbox Code Playgroud)

Kir*_*kin 5

set不会更改正在使用其的对象-它返回具有新值设置的新对象。您可以使用如下形式:

let params = new HttpParams()
   .set('Id', Id)
   .set('name', name)

if (startDate != null) {
    params = params.set('startDate', startDate.toDateString());
}

if (endDate != null) {
    params = params.set('endDate', endDate.toDateString());
}
Run Code Online (Sandbox Code Playgroud)

请注意如何重新分配params对象。还要注意使用来防止和。!=nullundefined

  • 你应该避免避免 != null 除了“boolean”,通常你应该写 if(startDate) { if(endDate) { (2认同)