什么是检查if语句附加值的正确方法?

时间:2018-07-16 17:06:27

标签: javascript arrays typescript

我有一个url调用,需要在向后端发出请求之前进行准备,有baseurl,但是有些url需要附加参数 需要添加到网址,例如servicetocall / additonalParam。现在它按预期工作,但问题是当我拥有属于URL的查询参数时 并采用多个值,例如,假设我将baseurl定义为servicetoCall?configlist=,而我必须分配值login,validation。 如果我发送这些值,它将显示为servicetoCall?configlist=/login,validation,但在这种情况下,我不需要/。如何进行检查和解决 这个问题?

main.ts

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();
    });
}

1 个答案:

答案 0 :(得分:0)

看看“ HttpClient GET”。 (或者POST或DELETE版本都非常相似)

您可以自己操纵网址,然后再调用

const url = 'myUrl?param1="Hello"&param2="World"'
this.http.get(url)

这就是您现在正在做的事情。

或者您可以使用Angular对象并让Angular完成工作。

const url:string = 'myUrl';
const options = {
  params: { 
    param1: 'Hello',
    param2: 'World'
  }
}
this.http.get( url, options);

这看起来像很多代码,但是也很清楚我们在做什么。显示您的意图。有一个固定的url部分,有一些参数...

最后但并非最不重要的是,您可以准备一个HttpRequest对象,并将其发送给

this.http.request( yourRequest );

但这只是我之前展示的版本的漫长的旅程。

仅需几句话,为什么我会选择一个单独的“选项”对象而不是一个全能的URL字符串呢? 如果将所有内容直接打包到字符串中,以后将很难操作。因此,如果这是一个非常简单的网址,则可以。一旦它变得有点复杂,或者您考虑“准备” URL供以后使用,我会立即在它周围包裹一些糖(HttpClient是您的朋友)。 这使您的代码更具可读性,并且可以轻松对其进行测试

热烈的问候