我有类似的代码。
var myI18n; // json : "{"close":"بستن","locationInformation":"مشخصات جغرافیایی","yes":"بله","no":"خیر"}"
我想用这样的东西。
$.modal({
buttons: {
myI18n.close: function(win) {
}
}
});
但我有语法错误。 也可以使用此方法字符串不要更改。
var aaa = myI18n.close;
$.modal({
buttons: {
aaa: function(win) {
}
}
});
答案 0 :(得分:2)
将具有动态名称的属性分配给对象的唯一方法是使用数组语法
var myButtons = {};
myButtons[myi18n.close] = ...
答案 1 :(得分:2)
您无法在对象文字中引用键名中的变量,因此您需要先创建对象,使用常规[]
表示法填充它,然后在$.modal
中使用它。
buttons = {}
buttons[myI18n.close] = function(win) {
// ....
}
$.modal({
buttons: buttons
});
答案 2 :(得分: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;
}())
});