我在灰尘测试页面http://linkedin.github.com/dustjs/test/test.html上玩灰尘示例,同时在 node.js (0.8.15)、express.js(3.0.4 ), consolidate(0.0.5),dust-linkedin(1.1.1)。
如果我在灰尘测试页面上执行我的模板(请参阅顶部的链接),它运行良好:
<a href="/en/subjects/subject-1-page-id">subject 1 title en</a>
它呈现主题 1 标题 en
如果我在 node/express/consolidate/dust 上执行我的模板,则会显示:
<a href="/en/subjects/subject-2-page-id">{locale[lang].title}</a>
它呈现{locale[lang].title}
这是我的模板:
{#subjects lang=language}
<div>
<img src="/files/subjects/{logo}" />
<div>
<a href="/{lang}/subjects/{pageId}">{locale[lang].title}</a>
</div>
</div>
{~n}
{/subjects}
这是我的 JSON 对象:
{
language: 'en',
subjects: [
{
logo: 'subject1.jpg',
pageId: 'subject-1-page-id',
locale: {
en: { title: 'subject 1 title en' },
fr: { title: 'subject 1 title fr' },
}
}
]
}
这是来自灰尘测试站点的渲染模板:
<div>
<img src="/files/subjects/subject1.jpg" />
<div>
<a href="/en/subjects/subject-1-page-id">subject 1 title en</a>
</div>
</div>
这里是从 node/express/consolidate/dust-linkedin 渲染的模板
<div>
<img src="/files/subjects/subject1.jpg" />
<div >
<a href="/en/subjects/subject-1-page-id">{locale[lang].title}</a>
</div>
</div>
这是来自灰尘测试页面的编译模板的一部分(请参阅顶部的链接):
.write("\">").reference(ctx.getPath(false, ["locale", ctx.get("lang"), "title"]), ctx, "h").write("</a></div></div>\n");
这是我使用{locale[lang].title}时在服务器上编译的部分。
.write("\">{locale[lang].title}</a></div></div>\n");
这是我使用{locale.en.title}时在服务器上编译的部分
.write("\">").reference(ctx.getPath(false, ["locale", "en", "title"]), ctx, "h").write("</a></div></div>\n");
如果我尝试在节点上渲染{locale.en.title} - 它可以工作。
请注意lang变量始终在 <a href='/ en / ...> 链接中起作用
我的问题是:为什么在浏览器灰尘中解析我的路径很好,但在节点上不起作用?或者,如何使用“类数组”键访问来呈现对象