猿问

通过 URL 传递参数将其显示为 [object object] 而不是字符串(打字稿)

嗨,我正在尝试将一些字符串参数传递到我的网址,以便我可以从 API 获取信息。


这工作正常,当在警报中显示时,会完全按照应有的方式显示 url(不包含 [object, object])。


var startDate = "2020-09-20" ;

var endDate = "2020-11-20";

var apiUrl = 'https://thisismyurls7F174D955BF8&dateFrom='+{startDate}+' &dateTo='+{endDate}+'T18%3A56%3A58.930Z&showAllFutureItinerary=true'

但是,当我这样做时。


CustomSearch(startDate: string,endDate: string)

  {

   var Url = 'https://localhost:44381/api/internal/itinerary/all?userId=996D7BD5-C625-5C7E-6A02- 7F174D955BF8&dateFrom='+{startDate}+'T18%3A56%3A58.930Z&dateTo='+ {endDate}+'T18%3A56%3A58.930Z&showAllFutureItinerary=true'.toString();


}

它无法访问 API,并且当 console.logged/alerted 显示变量都是 [object object] 时。


这些是从另一个组件的 onsubmit 函数传递的,如下所示。


model = {

  startDate: String,

  endDate: String,

  search: String

}


constructor(private itineraryService: ItineraryService) {}


onSubmit() {

    // var a = JSON.stringify(this.model)


    if (this.model.endDate != undefined && this.model.startDate != undefined) {

      this.items = this.itineraryService.CustomSearch(this.model.startDate.toString(), this.model.endDate.toString())

    }

我基本上只需要将它们都作为字符串而不是将它们显示为 [object object]


幕布斯7119047
浏览 305回答 1
1回答

慕田峪9158850

您没有正确使用模板文字。使用速记属性名称{ startDate }创建对象文字。当您将对象与字符串连接时,它会调用对象上的方法并变为toString[object, Object]const start = 'abc',      obj = { start }console.log(obj)console.log(  'some string' + { start })模板文字应该用反引号包裹,而不是引号表达式应该${ expression }用$将其更改为:var apiUrl = `https://thisismyurls7F174D955BF8&dateFrom=${startDate}&dateTo=${endDate}T18%3A56%3A58.930Z&showAllFutureItinerary=true`
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答