[英]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.