fool2fish / velocity

A node velocity template engine. Node 版 velocity 模板引擎。

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

解析并调用一个 非全局的 macro

speedornothing opened this issue · comments

commented

问题描述:
有两个模版文件 a.vm 和 b.vm, 前者定义了一个 macro ,后者通过 parse 指令解析前者并调用其定义的 macro


在 java 版中这样做是可以的,node 版会报 macro 未定义的错误

commented

详细说明一下,

macro-x.vm ( 定义一个 macro )

#macro(macroX)
<div>
  macroX content ...
</div>
#end

test.vm ( 测试模板, 解析 macro-x.vm 然后调用 macroX )

#parse("macro-x.vm")
#macroX()

test.js ( 测试代码 )

'use strict'

var path = require('path')

var Engine = require('velocity').Engine
var engine = new Engine({
  root: __dirname,
  template: path.resolve(__dirname, 'test.vm')
})
var result = engine.render({})
console.log(result)

报错信息: Error: Call undefined macro.

commented

@fool2fish 这位女侠看样子最近挺忙额 ...

怎么解决的?

commented

@aiwb 没有解决,直接把宏放在全局用了,最后直接放弃 velocity 了 ..