道场和模板解决方案

时间:2012-02-10 07:54:10

标签: templates dojo

通常我在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 Murphey,一位着名的javascript演讲者,当她开始在这个生态系统中开发时,将Mustache.js拉入Dojo。 但是当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!
我想我会用这个。
您提到了处理这种模板小部件的首选方法。这是非常有趣的事情,WIDGETS作为页面控制器与模板!

1)我的第一个javascript web 2.0 MVC页面控制器是一个很大的自定义jQuery UI小部件。我听说jQuery UI团队正计划将模板集成到他们的小部件中。 在使用backbone.js迁移到jquery后,我转身离开它。

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

3)Mark Wubben在Dojo Conf上谈到了模板:他说:

  

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

2 个答案:

答案 0 :(得分:6)

对于简单的事情,您可以使用dojox.dtl

我的偏好是创建Templated Widget,另请参阅Creating a custom widget的教程。

答案 1 :(得分:0)

我知道你想要更强大的东西,但是对于非常简单的基于替换的模板,你可以使用dojo/_base_lang/replace,这很像dojox / dtl或Mustache的简单形式。并且不受Dojox的影响(因此不完全支持)。