Jade/Pug中的部分模板与动态数据

3
我正在尝试创建一个包含2个块的视图。每个块都有不同的实时数据源。当我在主视图中使用Jade的include时,:
extends ../layout

block content
 link(rel='stylesheet', type='text/css', href='/stylesheets/people.css')
 include ../store/peopleTemplate.pug

我遇到了错误。
Cannot read property 'people' of undefined.

原因是数据仍在加载中。如果去掉包含的内容,而是在恢复数据的函数中使用它,请尝试以下操作。
res.render(template, {  data:localData });

该模板未被添加到视图。

如何将来自不同来源的动态数据添加到1个视图中的2个或更多局部视图?谢谢。

2个回答

5
您可以使用mixin来实现此功能。

layout.pug

doctype html
html
  head
    ...
  body
    block content

pets-partial.pug

mixin petslist(pets)
  ul
    each pet in pets
      li #{pet}

pets.pug

extends layout

include pets-partial

block content
  h1 Dogs
  +petslist(dogs)

  h1 Cats
  +petslist(cats)

https://pugjs.org/language/mixins.html

在Jade中,语法与Pug 2略有不同。

4

经过广泛的调研,Pug/Jade模板引擎不支持动态模板渲染或在一个视图中使用多个局部模板。针对这种情况,推荐使用Handlebars。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接