在Angular 7中,使用HTTP服务发送带有参数的请求时,如果参数为undefined,可能会导致报错。解决方法是在发送请求之前检查参数是否为undefined,并在需要时设置默认值。
下面是一个示例代码:
import { HttpClient, HttpParams } from '@angular/common/http';
@Injectable()
export class DataService {
constructor(private http: HttpClient) { }
getData(param1: string, param2: string) {
// 检查参数是否为undefined,如果是则设置默认值
param1 = param1 || '';
param2 = param2 || '';
// 创建HttpParams对象,设置参数
let params = new HttpParams()
.set('param1', param1)
.set('param2', param2);
// 发送请求
return this.http.get('api/data', { params: params });
}
}
在这个例子中,我们首先检查参数param1和param2是否为undefined,如果是,则将其设置为一个空字符串。然后,我们创建一个HttpParams对象,使用set方法设置参数的键和值。最后,我们使用get方法发送GET请求,将参数作为选项传递。
请注意,这只是解决参数为undefined的情况。如果参数可以为其他类型的值,请根据需要进行修改。