2017-02-23 13 views
0

컴파일 된 먼지 템플릿에서 헬퍼 종속성이 어떻게 관리되는지, 특히 클라이언트에서 사용되는 것과 관련하여 궁금합니다. 컴파일 된 먼지 템플릿과 함께 번들로 제공되는 도우미 메서드입니까? 클라이언트에서 지원되지 않는 종속성은 어떻습니까? 아니면 그 의존성이 다른 여러 종속성을 가지고 있다면?은 컴파일 된 템플릿에 번들로 제공되는 dust helper 종속성입니까?

// foo.dust 
{@myHelper} 
    <div>{foo}{bar}</div> 
{/myHelper} 


// my-helper.js 
const isomorphicDep = require('isomorphic-dep'); 
const nodeDep = require('node-dep'); 

module.exports = function(dust) { 
    dust.helpers.myHelper = function(chunk, context, bodies, params) { 
    // do some stuff using deps 
    let foo = nodeDep.getFoo(); 
    let bar = isomorphicDep.getBar(params.someInput); 

    return chunk.render(bodies.block, context.push({ foo, bar }); 
    }; 
}; 

감사

답변

1

컴파일 된 템플릿이 그냥 render--하는 방법에 대한 지침이 포함되어 있습니다를 : 여기에

내가 클라이언트에서 사용할 수 있도록하고 싶습니다 먼지 템플릿의 사소한 예입니다 클라이언트 코드 자체는 포함되지 않습니다. 예를 들어

,이 같은 간단한 템플릿 :

템플릿을 렌더링
function body_0(chk, ctx) { 
    return chk.h("helper", ctx, { 
    "block": body_1 
    }, {}, "h"); 
} 

function body_1(chk, ctx) { 
    return chk.w("foo"); 
} 

, 그것은 helper 이름 도우미를 찾기 위해 먼지 요청이 두 명령어 세트에

{@helper}foo{/helper} 

컴파일 실행 (body_0 함수에서). helper의 코드는 템플릿에 포함되어 있지 않습니다.

그래서 클라이언트에서는 올바른 isomorphic dep를로드하는 도우미가 들어있는 파일을 포함해야합니다 (예 : node-fetch와 whatwg-fetch).

+0

설명해 주셔서 감사합니다. – klicks