用于下划线模板编译的Rhino代码

时间:2014-08-07 13:46:11

标签: javascript underscore.js rhino underscore.js-templating

我有用于Dust模板编译器调用的Rhino代码。

public RhinoTemplateCompiler(final Reader js) throws ScriptException
    {
        final ScriptEngine engine = getJavaScriptEngine();
        this.invocable = (Invocable) engine;
        engine.eval(js);
        this.dust = engine.get("dust");
    }

    @Override
    public String compile(final String templateName, final String template) throws Exception
    {
        return invocable.invokeMethod(dust, "compile", template, templateName).toString();
    }

我想知道如果我必须在服务器端使用下划线,我必须做什么才能更改编译我的模板。

更新了

因此下划线模板方法具有以下参数

 _.template = function(text, settings, oldSettings)

现在我按如下方式更改了我的调用方法

public RhinoTemplateCompiler(final Reader js) throws ScriptException
    {
        final ScriptEngine engine = getJavaScriptEngine();
        this.invocable = (Invocable) engine;
        engine.eval(js);
        this.obj = engine.get("_");
    }

    @Override
    public String compile(final String templateName, final String template) throws Exception
    {
        final Object object = invocable.invokeMethod(obj, "template", template, "", "").toString();
        return object.toString();
    }

我在调用后得到的返回对象是这个字符串

sun.org.mozilla.javascript.internal.InterpretedFunction@13cbd84f

我不确定我做错了什么,因为我期待一个已编译的模板。

0 个答案:

没有答案