簡體   English   中英

用新的var值jquery重建列表

[英]Rebuilding a list with new var values jquery

加載了用戶傳遞的新值后,是否可以重新創建對象?

例如,我有一個包含api調用信息的對象,其中包括名稱和帶有必需屬性的其余url之類的東西。

var masterCallList = [
   {'CallName':'GetMerchantData','CallUrl': '/Merchants/?MerchantId=' + MerchantId + '&ApiKey=' + ApiKey, 'CallType':'Get', 'Desc':''},
   {'CallName':'GetMerchantFeed','CallUrl': '/FeedReturnItems/?MerchantId=' + MerchantId + '&ApiKey=' + ApiKey', 'CallType':'Get' 'Desc':''}
];

在頁面加載時,我循環瀏覽每個調用並從中構建html元素,包括創建onclick事件,然后運行該調用。

$(document).ready(function(){   
    //create the call lists and page elements from the master
    BuildCallLists();

我的問題是我想允許用戶更改他們正在請求信息的變量之一(例如商人標識),但是在重建變量時它們沒有新值。

除了將CallUrl作為字符串使用之外,還可以使其成為一個帶有參數的函數,例如:

var masterCallList = [
  {'CallName':'GetMerchantData','CallUrlFun': function(MerchantId, ApiKey) { return '/Merchants/?MerchantId=' + MerchantId + '&ApiKey=' + ApiKey; }, 'CallType':'Get', 'Desc':''},
  {'CallName':'GetMerchantFeed','CallUrlFun': function(MerchantId, ApiKey) { return '/FeedReturnItems/?MerchantId=' + MerchantId + '&ApiKey=' + ApiKey; }, 'CallType':'Get', 'Desc':''}
];

其中CallUrlFun是新函數。 現在,您可以使用給定的參數(MerchantId, ApiKey)調用該函數。 這是一個jsFiddle示例:

另一種選擇是在字符串中使用特殊的綽號並替換字符串,例如:

var masterCallList = [
  {'CallName':'GetMerchantData','CallUrlTemplate': '/Merchants/?MerchantId=##MerchantId##&ApiKey=##ApiKey##', 'CallType':'Get', 'Desc':''},
  {'CallName':'GetMerchantFeed','CallUrlTemplate': '/FeedReturnItems/?MerchantId=##MerchantId##&ApiKey=##ApiKey##', 'CallType':'Get', 'Desc':''}
];

在這里你有CallUrlTemplate包含綽號##MerchantId####ApiKey## 這是一個jsFiddle示例:

順便說一句,通常在JavaScript中,變量名以小寫字母開頭(例如,merchantId而不是MerchantId)。

希望這可以幫助。

暫無
暫無

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

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