2016-07-27 7 views
1

2つのブロックでビューを作成しようとしています。各ブロックは異なるリアルタイムデータソースを有していた。私がメインビュー内含んJade`sを使用すると、:動的なデータを持つJade/Pugの部分テンプレート

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 }); 

テンプレートはビューに追加されません。

異なるソースからの動的データを含む2つ以上の部分表示を1つのビューに追加するにはどうすればよいですか?ありがとう

答えて

0

Pug/Jadeテンプレートエンジンは、広範な研究の結果、ダイナミックテンプレートのレンダリングや、1つのビュー内での複数のパーシャルの使用をサポートしていません。このシナリオではハンドルバーが推奨されました。

2

これはミックスインで実現できます。

layout.pug

doctype html 
html 
    head 
    ... 
    body 
    block content 

ペット-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

ヒスイでは、構文はパグ2と少し異なります。

関連する問題