如何在Coldfusion中运行CFGroovy时添加纯javascript编译器插件服务器端?

时间:2012-10-05 22:04:15

标签: javascript compilation coldfusion server-side cfimport

我试图将自己推向尝试在服务器上构建增强的Jquery Mobile标记(运行Coldfusion8),然后尝试使用DustJS(Javascript模板引擎)来预编译标记为js字符串,我想将其作为静态文件服务器。

我想我已经尝试在Coldfusion中添加插件了。这就是我想要做的事情:

从Coldfusion中的模板开始:

<cfsavecontent variable="renderedResults">
    <cfoutput>
        {##person}{root}: {name}, {age}{/person}
    </cfoutput> 
</cfsavecontent>

通过NodeJS上的DustJS编译器运行它会返回如下内容:

 (function() {
      dust.register("demo", body_0);

 function body_0(chk, ctx) {
     return chk.section(ctx.get("person"), ctx, {
       "block": body_1
      }, null);
   }
   function body_1(chk, ctx) {
     return chk.reference(ctx.get("root"), ctx, "h").write(": ").reference(ctx.get("name"), ctx, "h").write(", ").reference(ctx.get("age"), ctx, "h");
   }
   return body_0;
 })();

然后我保存为someStaticTemplate.js。该文件被拉入客户端并填充了动态数据。

我的问题是在Coldfusion中编译它。

我正在使用Cfgroovy才能在服务器上运行Javascript:

 <cfimport prefix="g" taglib="../../tags/cfgroovy/" />
     35k zipped plugin here
     <!--- COMPILE  --->
     var dustedTemplate = dust.compile( variables.tempLateToCompile, variables.templateName);
     <!--- OUT --->
     variables.put("renderedResult", dustedTemplate);
 </g:script>

但是这样做会返回以下错误:

type: sun.org.mozilla.javascript.internal.JavaScriptException 
message: [object Error] (<Unknown Source>#1)

所以我一定做错了......

问题:

是否可以将此服务器端编译为JS?如果是这样,任何想法如何包含插件。我也看了this帖子,但我已经伸展了我能做的事情,所以我希望这可以解决,因为我正在努力。

感谢您提供一些意见!

BOUNTY
好吧,我放弃尝试自己。赏金时间......我正在寻找一个允许我使用的Coldfusion代码片段 a)将DustJS插件加载到CFGrooy标签或替代的javascript启用设置中 b)让我运行DustJS Javascript-compile函数来打开我的模板

  {##person}{root}: {name}, {age}{/person}

进入这个:

  (function() {
      dust.register("demo", body_0);

 function body_0(chk, ctx) {
     return chk.section(ctx.get("person"), ctx, {
       "block": body_1
      }, null);
   }
   function body_1(chk, ctx) {
     return chk.reference(ctx.get("root"), ctx, "h").write(": ").reference(ctx.get("name"), ctx, "h").write(", ").reference(ctx.get("age"), ctx, "h");
   }
   return body_0;
 })();

如果技术上不可能,我可以选择其他方法,允许我在服务器上创建一个模板,该模板基于HTML并包含占位符,因此我可以在客户端上添加动态数据。

谢谢!