この構文を使用して 'コンポーネント'をループすると、EJSはそのタスクがオブジェクトではなく、task._idで置き換えられていると不平を言っています。EJS、ノードjs forEachループのインクルード
どのようなアイデアをお願いしますか?
<? tasks.forEach(function(task){ ?>
<?- include('_task'); ?>
<? }) ?>
この構文を使用して 'コンポーネント'をループすると、EJSはそのタスクがオブジェクトではなく、task._idで置き換えられていると不平を言っています。EJS、ノードjs forEachループのインクルード
どのようなアイデアをお願いしますか?
<? tasks.forEach(function(task){ ?>
<?- include('_task'); ?>
<? }) ?>
あなたinclude
にtask
を渡す方法を求めている場合、このようなものになるだろう:
<? tasks.forEach(function(task) { ?>
<?- include('_task', {task: task}) ?>
<? }) ?>
トップレベルのデータが自動的に含まれますが、ローカル変数を明示的に渡す必要がありますされ。 https://github.com/mde/ejs#includes
それはまさに私が必要としていたものです:)ありがとう@スキル...私はそれがオブジェクトに「タスク」としてアクセスできると仮定しましたが、そうではありません。 – Kris
@Kris 'include'を実行すると完全に別のテンプレートとしてレンダリングされるので、周囲のテンプレートから何も見ることができません。デフォルトでは、元のテンプレートと同じ 'locals'オブジェクトが渡されます。 EJSはあなたの 'task'変数が存在することさえ知りません。あなたの' ?> 'ブロック内のコードはEJSの理解なしに直接テンプレート関数にコンパイルされます。 – skirtle
意味があります。もう一度ありがとう:) – Kris
正確に 'task'を' task._id'に置き換えていますか? – skirtle