0

ユーザーから渡された新しい値が読み込まれた後、オブジェクトを再作成することはできますか?

たとえば、名前や必要な属性を持つ残りのURLなどのAPI呼び出し情報でいっぱいのオブジェクトがあります。

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

ページの読み込み時に、各呼び出しをループし、呼び出しを実行するonclickイベントの作成を含め、そこからhtml要素を構築します。

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

私の問題は、ユーザーが情報を要求しているマーチャントIDなどの変数の1つを変更できるようにしたいのですが、再構築したときに新しい値がないことです。

4

1 に答える 1

0

文字列として持つ代わりに、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)。

お役に立てれば。

于 2013-01-17T01:53:12.650 に答える