将数组作为参数传递给 twig 中的视图渲染

Pass an array as a parameter for view rendering in twig

我是 Twig.js 的新手,注意到它缺少一些文档。事实上,我只能在他们的 GitHub wiki.

上找到非常基本的使用信息

我的观点取决于一堆变数。所有视图都来自 layout.twig,其中包括 navbar.twig。最后一个需要很多参数,比如颜色、名称和其他我还没有实现的参数。

问题是每次呈现视图时我都需要传递大量变量。所以我认为一个解决方案是每次传递一个数组,而不是多个字段。我的问题来了,关于我如何与这个数组交互 显示错误时可以表示我当前低效的解决方案:

res.render('error', {title: appConfig.name, color: appConfig.color (...)});

如果我可以传递一个数组,然后在我的 twig 视图中与它交互,那就更好了。

我愿意接受其他解决方案。能够从视图内部访问 appConfig 就是其中之一,尽管我认为这是不可能的。如果是这样,请告诉我怎么做!我会永远感谢你。

提前致谢。

您可以使用 JSON.parse 简单地将 appConfig 解析为 JSON 对象。 注意 - JSON.parse 可以占用当前线程,因为它是同步方法。因此,如果您打算解析大 JSON 对象,请使用流式 json 解析器。

通过 appConfig:

var appConfig = { name: 'Jeremy', color: 'green' };
res.render('home', appConfig );

渲染它:

<div class="{{ color }}">Hello {{ name }}</div>

Twig 也可以很好地处理嵌套对象:

var navConfig = { color: 'salmon' }
res.render('home', { nav: navConfig, name: 'Arnold' })

<nav class="{{ nav.color }}">{{ name }}</nav>