将数组作为参数传递给 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>
我是 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>