我是一名有帮助的助手,以下是您需要翻译的内容:
有没有关于如何在不使用eval()的情况下访问i18n对象中的“pageTitle”属性的建议?我需要保留对象的结构,因此更改其布局为“平面”解决方案是不可行的。
谢谢!
我正在尝试为我正在开发的HTML应用程序创建一个通用的i18n解决方案。我正在寻找替代方法来使用eval()调用深度嵌套的JavaScript对象:
假设以下是HTML示例:
<div id="page1">
<h1 data-i18n="html.pageOne.pageTitle"></h1>
</div>
以及它的伴生 Javascript(使用 jQuery):
var i18n;
i18n = {
html: {
pageOne: {
pageTitle: 'Lorem Ipsum!'
}
}
};
$(document).ready(function () {
$('[data-18n]').each(function () {
var q;
q = eval('i18n.' + $(this).attr('data-i18n'));
if (q) {
$(this).text(q);
}
});
});
有没有关于如何在不使用eval()的情况下访问i18n对象中的“pageTitle”属性的建议?我需要保留对象的结构,因此更改其布局为“平面”解决方案是不可行的。
谢谢!