3

我在灰尘测试页面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 / ...> 链接中起作用

我的问题是:为什么在浏览器灰尘中解析我的路径很好,但在节点上不起作用?或者,如何使用“类数组”键访问来呈现对象

4

0 回答 0