我正试着从服务器上请求一些数据。当我将属性的模型更改为未定义时,这个“未定义”字符串将在查询字符串中发送。
let filterModel = new GroupFilterModel();
filterModel.status = anycondition ? "opened" : undefined;
this.http.get<GroupModel[]>("apiurl", { params: filterModel });发送的查询字符串如下所示:
apiurl?status=undefined我想避免发送状态变量。我怎么能有这种行为?
发布于 2018-09-27 00:35:22
在ES6中使用这个衬垫:
Object.keys(obj).forEach(key => obj[key] === undefined ? delete obj[key] : '');好像:
filterModel.status = anycondition ? "opened" : undefined;
const model = Object.keys(filterModel).forEach(key => obj[key] === undefined ? delete obj[key] : '');
this.http.get<GroupModel[]>("apiurl", { params: model });您还可以更进一步,将其作为对象的扩展:
Object.prototype.StripUndefined = function StripUndefined() {
return this.keys(filterModel).forEach(key => obj[key] === undefined ? delete obj[key] : '');
};发布于 2018-09-27 00:28:41
您可以使用存档删除具有未定义值和空值的属性,如下所示:
let filterModel = new GroupFilterModel();
filterModel.status = anycondition ? "opened" : undefined;
this.http.get<GroupModel[]>("apiurl", { params: _.pickBy(filterModel) });有关使用香草JS的其他解决方案,请参见:
https://stackoverflow.com/questions/52527698
复制相似问题