Angular 角度5:HttpParams发送整数而不是字符串值?
只要db列SUBATID需要varchar字符串,这就可以正常工作Angular 角度5:HttpParams发送整数而不是字符串值?,angular,Angular,只要db列SUBATID需要varchar字符串,这就可以正常工作 this.params = { 'filter': `(${column} like ${subCatId}%)` } 当列需要整数时,它会失败,这可能是因为返回标记将整个URL参数转换为字符串 我一直在尝试这种变化,但都没有奏效。它们不会编译 'filter': `${column}%3D`${subCatId} or 'filter': `${column}=`${subCatId} 这确实有效,通过招摇过市生成:
this.params = {
'filter': `(${column} like ${subCatId}%)`
}
当列需要整数时,它会失败,这可能是因为返回标记将整个URL参数转换为字符串
我一直在尝试这种变化,但都没有奏效。它们不会编译
'filter': `${column}%3D`${subCatId}
or
'filter': `${column}=`${subCatId}
这确实有效,通过招摇过市生成:
http://localhost:8080/api/v2/pfpsql/_table/skills?
fields=skill_id%2C%20skill_name%2C%20category_id&filter=category_id%20%3D%202
因此,Swagger示例不会对表列整数约束产生问题。角度代码可以。字符串末尾的“2”是角度HttpParams中的问题。田野很好
你有什么想法吗?可能很简单,但我不熟悉这个主题,无法通过大量搜索在网上找到建议。为了将来的参考,这是整个http调用。非常感谢柯克·拉金!有关背景信息,请参见OP的评论
public getSubCatTags(dbTable, column, subCatId): Observable<any> {
this.params = {
'fields': `skill_id, skill_name, category_id`,
'filter': `${column} = ${subCatId}`
};
return this.http.get<any>(`${this.baseUrl}${dbTable}`, {params: this.params, headers: this.headers});
}
public getsubcatags(dbTable、column、subCatId):可观察{
this.params={
“字段”:“技能id、技能名称、类别id”,
'过滤器':`${column}=${subCatId}`
};
返回this.http.get(`${this.baseUrl}${dbTable}`,{params:this.params,headers:this.headers});
}
如果你说URL不起作用,你能举例说明URL是什么样子的吗??
之后的任何内容都称为查询字符串,因此整个内容都是一个字符串(是的,它押韵),即使在您的招摇过市的示例中也是如此。结果只是表中的第一条记录,与category_id没有关系。我应该提到,编译问题在上述版本中category_id的右侧。田地很好耕作。最后的“2”才是问题所在。我将把这条评论添加到主要帖子中。为什么您的第一个示例以%
结尾?我猜这是针对类似“%”的样式的查询,但如果列需要整数,则这当然不起作用。我看不出您想要实现什么,因为您的“坏”示例与第一个代码段的结构不同。顺便说一句,这看起来像是在攻击的风险…是的,它是'像'。我刚在我的帖子里改了。这就是有效的设置——直到我将列从字符串更改为整数,因为看起来数字id应该是整数。这是为了开发目的。当我进入后端编码时,我会将参数发送到服务器进行查询。对于没有编译的两行,只需将第二个`移到行的末尾,看看这是否符合您的需要。