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

Partial template in Jade/Pug with dynamic data

本文关键字:数据 动态 Pug Jade      更新时间:2023-09-26

我正在尝试创建具有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 });

模板未添加到视图中。

如何将两个或多个具有来自不同来源的动态数据的局部视图添加到一个视图中?感谢

您可以通过mixin实现这一点。

布局.pug

doctype html
html
  head
    ...
  body
    block content

宠物部分。pug

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

宠物。哈巴狗

extends layout
include pets-partial
block content
  h1 Dogs
  +petslist(dogs)
  h1 Cats
  +petslist(cats)

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

在jade中,语法与pug2略有不同。

经过广泛的研究,Pug/Jade模板引擎不支持动态模板渲染或在一个视图中使用多个部分。针对这种情况,建议使用把手。