2016-07-27 3 views
1

두 개의 블록으로 뷰를 생성하려고합니다. 각 블록은 다른 실시간 데이터 소스를 가졌습니다. 내가 사용하는 경우 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 템플릿 엔진은 동적 템플릿 렌더링 또는 하나의보기 내에서 여러 부분의 사용을 지원하지 않습니다. 이 시나리오에서는 핸들 바가 권장되었습니다.

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와 약간 다릅니다.

관련 문제