0

jQuery を使用してオブジェクト リテラル内に子 (変数、配列、およびオブジェクト) を格納する際に問題が発生しています。

var LoginVO = LoginVO || {};

(関数($) {

LoginVO.username = '';
LoginVO.password = '';
LoginVO.loginDate = '';
LoginVO.userId = '';

LoginVO.authenticated = false;
LoginVO.accountNonExpired = false;
LoginVO.accountNonLocked = false;
LoginVO.credentialsNonExpired = false;
LoginVO.enabled = false;
LoginVO.salt = '';

LoginVO.timeOfLastWebServiceCall = '';
LoginVO.timeOfLastRawHttpCall = '';

LoginVO.remoteAddress = '';
LoginVO.sessionId = '';

})(jQuery);

呼び出されると、これらのオブジェクトをモデル オブジェクトに詰め込みます。後でこの子を参照したり操作したりできます

modelLocator.Login.sessionId = ;1234';

次に、アプリケーションの特定の時点で、これらの子を更新する必要があります。次に、それらを XML 文字列に組み立てて、SOAP エンベロープでサーバーに返す必要があります。ただし、Soap メッセージは特定の順序である必要があります。オブジェクトの子を xsd に表示される順序で定義しました。for ループを実行しているときに発生している問題は、子供たちの順序が狂っています。バックエンドや xsd を変更することはできません。また、トランスポートを SOAP から別のものに変更することもできません。作成時、または for ループを実行して子が追加される順序を制御するときに、子を順序付ける方法を誰かが提案できますか?

御時間ありがとうございます

ジェフ

4

1 に答える 1

0

オブジェクト プロパティは順不同であると想定されています。順序が重要な場合は、プロパティ名の配列を目的の順序で使用し、代わりにそれをループします。

arr_desired_order = ["username","password","loginDate", /* etc. */ ];

for (var i=0, j=arr_desired_order.length; i<j; i++) {
    var key = arr_desired_order[i],
        val = LoginVO[key];
    // do something with key and val
};
于 2013-05-29T15:19:40.307 に答える