Javascript 检查附加值的if语句的正确方法是什么?
我有一个url调用,需要在我们向后端发出请求之前准备好,有baseurl,但有些url需要附加参数 需要添加到url中的,例如servicetocall/additonalParam。现在它按预期工作,但问题是当我有作为url一部分的查询参数时 并获取多个值,例如,假设我将baseurl定义为Javascript 检查附加值的if语句的正确方法是什么?,javascript,arrays,typescript,Javascript,Arrays,Typescript,我有一个url调用,需要在我们向后端发出请求之前准备好,有baseurl,但有些url需要附加参数 需要添加到url中的,例如servicetocall/additonalParam。现在它按预期工作,但问题是当我有作为url一部分的查询参数时 并获取多个值,例如,假设我将baseurl定义为servicetoCall?configlist=,并且我必须分配值login、validation。 如果我发送这些值,它将显示为servicetoCall?configlist=/login,valid
servicetoCall?configlist=
,并且我必须分配值login、validation
。
如果我发送这些值,它将显示为servicetoCall?configlist=/login,validation
,但在这种情况下,我不想要/
。如何进行检查并解决此问题
这个问题
梅因酒店
cont params = ["login,validation", "additonal param if needed"]
if (serviceName.params && serviceName.length > 0) {
serviceName.params.forEach((param) => {
baseConfig.Url += "/" + param.toString();
});
}
if(serviceName = "servicetoCall?configlist=") {
serviceName.params.forEach((param) => {
baseConfig.Url += param.toString();
});
}
请看一看“”。(或者发布或删除的版本都非常相似)
您可以自己操作URL,然后调用它
const url = 'myUrl?param1="Hello"¶m2="World"'
this.http.get(url)
这就是你现在正在做的
或者你可以使用有角度的物体,让Angular做这个工作
const url:string = 'myUrl';
const options = {
params: {
param1: 'Hello',
param2: 'World'
}
}
this.http.get( url, options);
这看起来像是更多的代码,但它也更清楚我们正在做什么。你的意图已经表现出来了。有一个固定的url部分,有参数
最后,但并非最不重要的一点是,您可以准备一个对象,并将其与
this.http.request( yourRequest );
但这只是我之前展示的版本的漫长道路
就几句话,为什么我会选择一个单独的“选项”对象,而不是一个万能的url字符串。。。
如果您将所有内容直接打包到字符串中,那么以后将很难进行操作。所以,如果这是一个非常简单的url,那么这种方式是可以的。一旦它变得稍微复杂,或者您考虑“准备”一个url供以后使用,我会立即在它周围包上一些糖(HttpClient是您的朋友)。
这使您的代码更具可读性,您可以轻松地对其进行测试
温馨问候看起来是一个很好的使用案例。是否可以提供上述代码的示例?使用该API添加参数,然后检查
如果(urlObject.searchParams.has('someKey'))
这是一个组件还是其他什么?