簡體   English   中英

js將屬性添加到url param對象

[英]js add property to url param object

我有一個通過以下方式創建的網址:

let forwardBaseUrl = 'https://www.usergems.com/api/gmail/info?' + $.params({
                event: 'Click forwarded link',
                email: btoa(userEmail),
                properties: {
                    forwardId: btoa(forwardId)
                }
            });

是否有一種簡單的方法可以在以后將屬性添加到properties對象:我想要與此相同的結果:

let forwardBaseUrl = 'https://www.usergems.com/api/gmail/info?' + $.params({
                event: 'Click forwarded link',
                email: btoa(userEmail),
                properties: {
                    forwardId: btoa(forwardId),
                    forwardUrl: 'http://google.at'
                }
            });

最好的方法是合並參數。 與此類似(顯然不起作用):

forwardBaseUrl.params.push({properties: { forwardUrl }})

首先,實際JQuery的方法是$.param()而不是$.params()

接下來,如果您重構代碼以“構建”“ params”對象並設置一個可以向對象添加屬性的函數,那么您可以隨時重新生成序列化結果:

 var userEmail = "me@you.com"; var forwardId = "12345"; var props = { forwardId: btoa(forwardId) }; var paramObj = { event: 'Click forwarded link', email: btoa(userEmail), properties: props }; let forwardBaseUrl = 'https://www.usergems.com/api/gmail/info?' + $.param(paramObj); console.log(forwardBaseUrl); function changeProperties(prop, value, addRemove){ if(addRemove){ // Add new property to properties object props[prop] = value; } else { // remove property from properties object delete props[prop]; } } // Add a new property to the params "properties" object: changeProperties("forwardUrl", "http://google.at", true); // Update serialized params forwardBaseUrl = 'https://www.usergems.com/api/gmail/info?' + $.param(paramObj); console.log(forwardBaseUrl); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 

var restObj = {
  url: 'https://www.usergems.com/api/gmail/info?'
  params: {
     event: 'Click forwarded link',
     email: 'asda',
     properties: {
        forwardId: btoa('asd')
     }
  },
  getUrl: function () {
    return this.url + $.param(this.params);
  }
}

//現在可以更改params對象restObj.params.properties.anotherParam ='param';

//並獲取新的URL console.log(restObjgetUrl。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM