我试图尝试在服务器上构建增强的Jquery标记(运行Coldfusion8),然后尝试使用DustJS (Javascript模板引擎)将标记预编编译成js字符串,我希望将其作为静态文件服务器。
我想我可以把它归结为尝试在Cold聚变中添加插件。以下是我想做的事:
从Cold聚变中这样的模板开始:
<cfsavecontent variable="renderedResults">
<cfoutput>
{##person}{root}: {name}, {age}{/person}
</cfoutput>
</cfsavecontent>通过DustJS编译器在NodeJS上运行此操作将返回如下内容:
(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。这个文件是在客户端上拉进来的,里面充满了动态数据。
我的问题是在Cold聚变中编译这个。
我使用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吗?如果是这样的话,是否知道如何包括插件。我也看过这的帖子,但是我已经在做我能做的事情了,所以我希望这能在我上面的尝试中得到解决。
谢谢你的投入!
有界
好吧,我放弃了自己的尝试。赏金时间..。我在找一个冷融合代码片段,可以让我
( a)将DustJS插件加载到CFGrooy标记或替代的javascript启用设置中
( b)让我们运行DustJS Javascript编译函数来从
{##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的模板,并包含占位符,这样我就可以在客户机上添加动态数据。
谢谢!
发布于 2012-10-09 12:26:03
你应该看看http://www.bennadel.com/blog/1766-Running-Javascript-In-ColdFusion-With-CFGroovy-And-Rhino.htm
和是否有可能将HTML标记编译成Cold聚变服务器端的可模板javascript?
编码愉快!
https://stackoverflow.com/questions/12754644
复制相似问题