Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将url中的筛选器传递给rest API_Javascript_Symfony_Typescript_Symfony 3.3 - Fatal编程技术网

Javascript 将url中的筛选器传递给rest API

Javascript 将url中的筛选器传递给rest API,javascript,symfony,typescript,symfony-3.3,Javascript,Symfony,Typescript,Symfony 3.3,我正在构建一个Ionic应用程序+一个symfony3RESTAPI。 由于需要过滤结果,我在api中创建了过滤器,要传递这些过滤器,我必须使用以下格式: ...URL?key=value&key2=value2&array_key[]=array_value1&array_key[]=array_value2 因此,在我的Ionic应用程序中,我创建了一个包含我必须传递的所有值的对象: let filters : Object; filters = { "ke

我正在构建一个Ionic应用程序+一个symfony3RESTAPI。 由于需要过滤结果,我在api中创建了过滤器,要传递这些过滤器,我必须使用以下格式:

...URL?key=value&key2=value2&array_key[]=array_value1&array_key[]=array_value2
因此,在我的Ionic应用程序中,我创建了一个包含我必须传递的所有值的对象:

let filters : Object;
filters = {
    "key":"value",
    "key2":"value2",
    "array_key":["array_value1","array_value2"]
}

有没有一种方法可以将这个对象转换成一个字符串,这个字符串等于我的api所等待的内容?

所以我不知道我是不是发明了开水来实现这一点,但下面是我所做的:

public urlFiltersEncorder(filters: Object):string {
    let url_parts = [];
    for (let filter_key in filters) {
      if(filters[filter_key]  instanceof Array){
        for (let filter_item of filters[filter_key]) {
          url_parts.push(`${filter_key}[]=${encodeURIComponent(filter_item)}`);
        }
      }else{

  url_parts.push(`${filter_key}=${encodeURIComponent(filters[filter_key])}`);
      }
    }
    return '?'+url_parts.join('&');
  }
我很想知道是否有更好的方法,因为我认为对于一个普通的任务有太多的代码