jsRender 和 jsViews 的区别
Posted
技术标签:
【中文标题】jsRender 和 jsViews 的区别【英文标题】:Difference between jsRender and jsViews 【发布时间】:2012-04-15 11:20:20 【问题描述】:所以 jQuery 模板永远不会超过测试版,jsRender 和 jsViews 应该填补空白。我查看了Boris Moore 在this page 上发布的示例,但我不明白 jsRender 和 jsViews 之间的区别。此外,鲍里斯在另一个例子中使用了一个来增加混乱。所以问题是它们中的两个如何相关(或不同)?
【问题讨论】:
【参考方案1】:来自文档:
JsRender 用于将模板渲染为字符串,准备好 插入 DOM。
JsViews平台也用到了,增加了数据绑定 JsRender 模板,并为 轻松创建交互式数据驱动的单页应用程序和网站。
【讨论】:
【参考方案2】:jsRender 只是模板,其中 jsViews 是模板,也是数据绑定。因此,如果您只想从对象、列表或类中输出数据,那么您将使用 jsRender。因此,渲染一个模板。 jsViews,将用于实时数据绑定,以及许多其他奇妙的功能。因此,如果您使用它渲染一个模板,并且有一个数据绑定字段,那么当您在客户端修改它时,它实际上是将对象修改为您从中获取它的对象。
例如,这是我工作中的这个小 sn-p 中对它的实际使用。
//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>
所以在这个对象的每一次出现中,它都会渲染模板。我们这里也有辅助函数。您可以将它们用于诸如返回布尔值以进行测试,然后在绑定期间像包装器一样对数据进行操作。希望这有助于在此响应之前添加已经完美的响应。
【讨论】:
【参考方案3】:JsRender 是模板引擎。 JsViews 是数据绑定引擎。
JsRender 可帮助您使用模板渲染 HTML(带有嵌入标记的静态 HTML/CSS,这些标记会被数据替换)。它支持简单的逻辑、渲染值和自定义函数。
建立在 JsRender 之上的 JsViews 增加了对象/属性的可观察性。这允许您将 json 对象链接到 HTML 目标并获得 2 路数据绑定。
当然,他们还有更多,但这是 60 秒的答案。这有帮助吗?
【讨论】:
这确实有帮助,你能给出更全面答案的链接吗? 这是我最近在 JsRender 上写的一篇文章……今天刚刚在 MSDN 杂志上发表:msdn.microsoft.com/en-us/magazine/hh882454.aspx 由于 observable 已被弃用,我还能使用 jsviews..只是想澄清一下以上是关于jsRender 和 jsViews 的区别的主要内容,如果未能解决你的问题,请参考以下文章