我试图推销自己试图在服务器上运行增强的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
。此文件在客户端上拉入并填充了dynmic数据。
我的问题是在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)在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的并包含占位符,因此我可以在客户端上添加动态数据。
谢谢!