Javascript 从客户端隐藏HTML模板

Javascript 从客户端隐藏HTML模板,javascript,jquery,html,knockout.js,template-engine,Javascript,Jquery,Html,Knockout.js,Template Engine,我希望保持客户端代码尽可能干净和最少。我的项目使用敲除JS和此模板引擎:。我已经在源代码的底部创建了模板,计算出的值呈现在teamplate的“pre”部分中(我真的不想看到)。有没有一种方法可以隐藏模板并在DOM加载时调用它?要从服务器加载模板,请将它们放在自己的.html小文件中,然后在客户端上,可以使用将它们提取到变量中: // The variable that we're going to put the template in var myTemplate; $.ajax({

我希望保持客户端代码尽可能干净和最少。我的项目使用敲除JS和此模板引擎:。我已经在源代码的底部创建了模板,计算出的值呈现在teamplate的“pre”部分中(我真的不想看到)。有没有一种方法可以隐藏模板并在DOM加载时调用它?

要从服务器加载模板,请将它们放在自己的
.html
小文件中,然后在客户端上,可以使用将它们提取到变量中:

// The variable that we're going to put the template in
var myTemplate;

$.ajax({
      async: false,
      type: "GET",
      url: "/templates/myTemplate.html",
      success : function(data) {
            myTemplate = data;
      }
 });
然后,当您想要使用该模板时,可以使用该模板调用
temp()

 var result = tmpl(myTemplate, data);

注意:我已使用
async:false
强制jquery同步,因为您希望在调用它时确保模板在那里。

您是否尝试过只能按需调用的外部模板?我也在使用节点,我应该添加,并且有一个解决方案服务器端。但是,这会使我的应用程序变得复杂,因为我必须先将淘汰数据传递给服务器,然后再返回。如果有很多模板要运行,会不会有太多的开销?开销在哪里?不管怎么说,您下载的是html,如果您使用AJAX,或者在第一次发出请求时将其放入正文中,都没有什么区别。但它似乎不起作用。但是,我的GET请求确实显示了一个200 HTTP状态代码。我的template.html文件是否只需要将脚本标记包装在模板html或模板html上?我需要HTML文档的其余部分吗?好的,谢谢。我会继续努力。我还没有从这个方法中生成输出,但从逻辑上讲,这似乎是有意义的。我可能需要在Knockout的文档中进一步挖掘,以确保我没有忽略某些东西。