【发布时间】:2017-11-29 18:00:16
【问题描述】:
我第一次使用 REST 和 HttpParams 的 Angular 文档对学习毫无用处,至少对我来说是这样。此外,只有一些较旧的 SO 问题,没有一个涉及连接,或者我们应该在 2017 年 9 月 9 日更新后采取的方法。所以我,可能还有其他许多人,需要一些指导:-)
这个 url 字符串工作正常,但真的很难看:
return this.http
.get<DfApi>(this.baseUrl + dbTable + '?filter=' + '('
+ column1 + '%20like%20' + entry + '%25)%20or%20('
+ column2 + '%20like%20' + entry + '%25)', {headers: this.headers});
我知道我可以使用字符串插值,但对于我这个新手来说,以上更容易可视化。我理解“让 params = new HttpParams().set...;”自 2017 年 9 月上旬以来未使用。因此需要这样的东西来设置参数。
this.params = {
// do something
};
我想我想达到这个目的:
return this.http
.get<DfApi>(`${this.baseUrl}/${dbTable}`,
{params: this.params, headers: this.headers});
我不知道如何从我的 url 字符串中获取设置导致 url 字符串的参数。我很惊讶还没有关于这方面的博客文章,因为它似乎应该在某个地方教授。
顺便说一句,我的 Postgres 标头使用旧方法。
【问题讨论】:
-
参数是键值对。 Angular 并不关心参数的值是什么。它必须是一个字符串,仅此而已。
-
“更容易想象”哈哈!
-
我在这个 url 字符串中看不到键值对。我知道如何来回发送 JSON。这是一个查询。如果您已经有了线索,这可能很容易......
-
键值对是
this.params = {filter: 'your_sql_string'};,从这里角度将负责将其转换为查询字符串filter=your_sql_string。从客户端发送 SQL 语句似乎存在安全风险 -
要插入 ${},字符串必须用反引号括起来,而不是简单的引号。
标签: angular