2017-05-23 4 views
0

私のビューを設定するための関数を含むejsファイルをインクルードしようとしています。これらの機能は、ヘルパーとして使用されるように定義されていました。私が使って試してみました:EJSに別のejsファイルで定義された関数が含まれています

<% include helpers.ejs %> 

しかし、私はこのファイルから機能を使用しようとすると:私はからコードをコピーする場合

Reference Error: module_start is not defined 

<% module_start('$body', [{name:'display',value:'block'}], 'body'); %> 

私はエラーを取得します'helpers.ejs'を元のビューファイル 'test.ejs'に追加すると、期待どおりに動作します。私はいくつかの答えを行って、 私は間違ってこの場合は何をやっている混乱しています。事前にあなたの助けのための

感謝。

答えて

2

考えられているすべてのソリューションを試してみるのに苦労した後、私はうまく機能しているソリューションに着いた。このコードで提示ソリューションを見てみると

EJS Functions

、私は「helpers.js」に私の「helpers.ejs」を更新:ソリューションから借りました。 EJSビューファイルで

const ejs_helpers = require('path/to/helpers.js'); 

... 

ejs.renderFile('filename', { helpers:ejs_helpers, ...}, (err,data)=>{}); 

:この後、私はコンテキストオブジェクトをレンダリングEJSに「helpers.js」からエクスポート機能を追加しました

<%- helpers.function_name(params); %> 

これはかなり私が最初に問題に接近方法を変更します。プレーンなejsヘルパーファイルの場合、関数は制御フロー文の間にHTMLを含みます。ここに示す例では、関数はプレーンストリングを返します。 'Scriptlet'タグで ' - 'に注目してください。

これは誰かを助けることを望みます。

+0

私は間違いなく助けてくれました、ありがとうございます – AntK

+0

あなたは大歓迎です。 –

関連する問題