2015-08-23 80 views
0

使用JSRender可以使用类型为“text/x-jsrender”的脚本标签创建模板。例如。JSRender内嵌模板

<script type="text/javascript"> 
     $("#movieList").html(
      $("#movieTemplate").render(movies) 
     ); 
</script> 

然而,对于简单的模板我更愿意在线声明它们,而不是在一个单独的“文本/ X-jsrender”脚本标签:

<script id="movieTemplate" type="text/x-jsrender"> 
     <li> 
      {{>name}} {{>releaseYear}} 
     </li> 
</script> 

如下然后它可以被渲染。这可能吗?我在想:

var myTemplate = "<li>{{>name}} {{>releaseYear}}</li>"; 
    var outputHtml = render(myTemplate, movies); 

回答

0

您可以使用$.templates()来做到这一点。你接近你只是缺少一个行:

var myTemplateText = "<li>{{>name}} {{>releaseYear}}</li>"; 
var myTemplate = $.templates(myTemplateText); 
var outputHtml = myTemplate.render(movies); 

作为一个说明,虽然中,模板是你可以从你的代码中分离演示文稿的好处之一。这意味着如果我是一名设计师,我可以轻松搞定您的模板HTML,而无需了解JavaScript逻辑。当你按照我上面展示的方式进行操作时,由于混合了表示和逻辑,你将失去这种能力。无论你是否确定,这取决于你。

无论如何,在JSRender website上有不同方式创建模板的一些很好的例子。

+0

谢谢你做到了。 – aw1975