【问题标题】:Angular 4 cant pass null as parameterAngular 4 不能将 null 作为参数传递
【发布时间】:2018-02-03 09:31:47
【问题描述】:

在我的程序中,我想通过参数获取。这些参数之一为空。但是,当我将此属性设置为 URLSearchParams 时,它不会出现在最终 URL 中吗?这可能吗?

这里是我作为参数传递的带有参数的对象:

{zpm_id:112, tow_id:null}

这里是我的部分功能:

public getDaneOkna(rodzaj: string, symbolOkna: string, parametry: any) {  
 let params = new URLSearchParams();
 Myheaders = new Headers();
 for (var key in parametry) {
      params.set(key, parametry[key]); 
    }

 return this._http.get(this.adresSerwera + '/dane/' + symbolOkna,
      {
        headers: Myheaders,
        search: params
      }
    )

【问题讨论】:

    标签: angular url-parameters


    【解决方案1】:

    如果 value == null,不要加上 params.set...

    【讨论】:

    • if (parametry[key] !== null){ //set key }
    • 那么我该怎么做呢?当我像普通 obj 一样添加它时,我的意思是 params['key']=value 它不起作用。
    • 我的意思是当我必须添加 null 作为参数时?
    • 你没有设置数据,所以收到的时候会为空
    【解决方案2】:

    通常建议避免在 typescript 中完全使用 null。请改用“未定义”。

    https://basarat.gitbooks.io/typescript/docs/tips/null.html

    但是如果由于某种原因你最终将参数传递为未定义,你将无法访问它的任何属性,所以这个

     parametry[key]
    

    会产生错误,而这

     console.log(parametry)
    

    不会产生错误,它只会打印'undefined'

    其他评论者最好避免传入未定义的参数。如果必须,在方法内部检查它的存在是明智的......

    【讨论】:

      猜你喜欢
      • 2018-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多