Templates Dojo和模板解决方案

Templates Dojo和模板解决方案,templates,dojo,Templates,Dojo,通常我在jQuery世界,我使用requirejs、backbone.js和jQuery开发一个wep应用程序。 为了拓宽视野,我也开始使用Dojo。 在我开始使用Dojo之前,我在几篇博客上读到的关于它与jQuery的关系的声明是这样的:“如果你正在制作一个带有一些JS效果的普通网站,你可以使用jQuery,但是对于web应用程序,你应该使用Dojo”。 因此,正因为如此,当我开始使用Dojo(1.7)时,我渴望了解它的web应用开发解决方案。 让我吃惊的第一件事是,我没有找到任何mvc控制器

通常我在jQuery世界,我使用requirejs、backbone.js和jQuery开发一个wep应用程序。
为了拓宽视野,我也开始使用Dojo。
在我开始使用Dojo之前,我在几篇博客上读到的关于它与jQuery的关系的声明是这样的:“如果你正在制作一个带有一些JS效果的普通网站,你可以使用jQuery,但是对于web应用程序,你应该使用Dojo”。
因此,正因为如此,当我开始使用Dojo(1.7)时,我渴望了解它的web应用开发解决方案。
让我吃惊的第一件事是,我没有找到任何mvc控制器组件的基类。在backbone.js中有一个视图(许多人说backbone.js视图是一个控制器),这非常有帮助。
现在,在我的mvc控制器组件中,我想渲染视图。我使用amd文本插件“加载”模板。我发现,对于简单的模板,可以使用dojo.string.substitute。但是如果你想做一些更复杂的事情,你不能使用它。
我知道Rebecca Murphy,一位著名的javascript演说家,在Dojo中引入了Mustache.js,当时她开始在这个生态系统中开发 但是,当Dojo web应用程序程序员必须呈现具有动态行数的列表并且希望通过js模板实现这一点时,他们使用什么Dojo本机解决方案呢

在下划线模板中。如果要执行此操作,请在模板中编写如下内容:

 <div><%= lang_test %></div> <!-- static things -->  
 <table>
 <% _.each(list, function(listitem){ %>
 <tr>
 <td><%= listitem.get('attr1') %></td>
 <td><%= listitem.get('attr2') %></td>
 </tr>   
 <% }); %>
 </table>

非常感谢
沃尔夫冈

更新:
谢谢你,mkriheli,你的回答。我还被dojox.dtl绊倒了
我想我会用这个。
您提到了处理此问题的首选方法是模板化小部件。这是非常有趣的事情,小部件作为带有模板的页面控制器

1) 我的第一个JavaScriptWeb2.0MVC页面控制器是一个大型定制jQueryUI小部件。我听说jQueryUI团队计划将模板集成到他们的小部件中。 在使用backbone.js迁移到jquery之后,我放弃了它

2) 据我所知和理解,来自JavascriptMVC的Justin Meyer接受了jQueryUI小部件工厂部分(jQueryUI小部件的基础部分),并在他的框架中将其用作页面控制器

3) Mark Wubben在Dojo会议上谈到了模板制作:他说:

这为编写Dojo小部件带来了一种新的、有趣的方法。它们可以变得更像控制器:处理DOM事件、实现应用程序逻辑和更新模型。视图将自动反映更改


对于简单的东西你可以使用


我的首选是创建一个,另请参见教程。

我知道您想要更健壮的模板,但是对于非常简单的、基于替换的模板,您可以使用,这非常类似于dojox/dtl或更简单的形式。并且有不在Dojox中的好处(因此不完全支持)