0

私はこのようなコードを持っています。

var myI18n; // json : "{"close":"بستن","locationInformation":"مشخصات جغرافیایی","yes":"بله","no":"خیر"}"

そして、私はこのような何かで使用したいと思います。

$.modal({
    buttons: {
        myI18n.close: function(win) {

        }
    }
});

しかし、構文エラーがあります。このメソッド文字列でも変更されません。

var aaa = myI18n.close;
$.modal({
    buttons: {
        aaa: function(win) {

        }
    }
});
4

3 に答える 3

2

オブジェクトリテラルのキー名で変数を参照することはできないため、最初にオブジェクトを作成し、通常の[]表記法を使用して入力してから、で使用する必要があります$.modal

buttons = {}

buttons[myI18n.close] = function(win) {
   // ....
}

$.modal({
    buttons: buttons
});
于 2012-06-05T17:08:27.507 に答える
2

動的な名前を持つプロパティをオブジェクトに割り当てる唯一の方法は、配列構文を使用することです

 var myButtons = {};
 myButtons[myi18n.close] = ...
于 2012-06-05T17:07:14.383 に答える
1

オブジェクトリテラルを変数キーで直接使用することはできません。配列アクセス構文(obj[keyname] = value)を使用するには、コードを分離する必要があります。

var obj = {
        buttons: {}
    };
obj.buttons[myI18n.close] = function () {...};
$.modal(obj);

または、モジュールパターンを使用することもできます。

$.modal({
    buttons: (function () {
        var btns = {};
        btns[myI18n.close] = function () {...};
        return btns;
    }())
});
于 2012-06-05T17:08:53.077 に答える