4

我试图推销自己尝试在服务器上构建增强的 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?如果是这样,任何想法如何包含插件。我也看过这篇文章,但我已经在扩展我能做的事情了,所以我希望这可以解决我在上面尝试的问题。

感谢您的一些投入!

BOUNTY
好吧,我放弃尝试自己了。赏金时间...我正在寻找一个 Coldfusion 代码片段,它允许我
a) 在 CFgrooy 标记或替代 javascript 启用设置中加载 DustJS 插件
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 并包含占位符的模板,以便我可以在客户端上添加动态数据。

谢谢!

4