0
Original code从JamieMThomas,一个(真正的好人,谁是试图微软JQuery的模板和链接合并):JavaScript杂技:如何将对象文字分配给评估属性?
mapping[binding.field] = {
convert: function (value, source, target) {
if (binding.converter && binding.converter.convert) {
value = binding.converter.convert(value, source, target)
if (value === undefined)
return;
}
$(target).attr(attrName, value);
}
};
我试图破解它允许binding.field
与像"LPC[0].itemid"
字符串(字面字符串工作)。我使用eval作为一个可怕的选择,但这是我能做的最快的事情(并且稍后将重写它)。我最初尝试将内容分配给eval('')本身,但它不允许我。
eval('(mapping.' + binding.field + ')') =
{ // rest is the same
convert: function (value, source, target) {
if (binding.converter && binding.converter.convert) {
value = binding.converter.convert(value, source, target)
if (value === undefined)
return;
}
$(target).attr(attrName, value);
}
};
很明显,左侧的分配无效。我怎么能做到这一点?