所以jQuery模板永远不会通过测试版,而jsRender和jsViews应该可以填补这一空白。我查看了Boris Moore在this page上发布的示例,但我不明白jsRender和jsViews之间的区别。此外,Boris在另一个的例子中使用了一个来增加混乱。所以问题是他们中的两个是如何相关(或不同)的?
发布于 2012-04-02 06:39:36
JsRender是模板引擎。JsViews是数据绑定引擎。
JsRender帮助你使用一个模板(静态超文本标记语言/CSS)来呈现超文本标记语言,这些标记被数据所取代。它支持简单的逻辑、渲染值和自定义函数。
构建在JsRender之上的JsViews为对象/属性添加了可观察性。这允许您将json对象链接到HTML目标,并获得双向数据绑定。
当然,还有更多的答案,但这是60秒的答案。这有帮助吗?
发布于 2013-06-14 11:29:53
jsRender只是模板,其中jsViews是模板,但也是数据绑定。因此,如果您只想从对象、列表或类中输出数据,则可以使用jsRender。因此,呈现一个模板。jsViews,将用于实时数据绑定,以及许多其他奇妙的特性。所以,如果你使用它呈现一个模板,并且有一个字段是数据绑定的,当你在客户端修改它时,它实际上是在修改你从中获得它的对象。
例如,这是我工作中的一小段代码中它的一个实际应用。
//this is the script that handles the template
<script id="questionResourceTemplate" type="text/x-jquery-tmpl">
<li class="default-{{:IsDefault}}">
<label data-link="visible{:!IsPageSpecific}" class="surv mleft5"><strong>{{:Type}}</strong></label>
<label data-link="visible{:IsPageSpecific}" class="surv mleft5"><input type="text" data-link="Type" /></label>
<a data-link="visible{:IsDefault}" href="#" action="deletequestionresource">Delete</a>
<br />
{^{for QuestionResourceTexts tmpl="#textTemplate" ~parentQuestionResource=#data ~textboxClass="textbox" /}}
</li>
</script>这就是它在HTML中的用法
<ul class="question-resource-list">
{^{for QuestionResources tmpl="#questionResourceTemplate" ~parentQuestion=#data /}}
</ul>因此,在此对象的每次出现时,它都会呈现模板。我们在这里也有助手函数。您可以将它们用于一些事情,比如为测试返回布尔值,然后在绑定期间像包装器一样对数据进行操作。希望这有助于增加在此响应之前回答的已经很完美的响应。
发布于 2015-08-06 22:06:51
从文档中:
JsRender用于将模板呈现为字符串,以便插入到DOM中。
也被JsViews平台使用,该平台将数据绑定添加到JsRender模板中,并提供了一个成熟的MVVM平台,用于轻松创建交互式数据驱动的单页面应用程序和网站。
https://stackoverflow.com/questions/9965571
复制相似问题