通常我在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绊倒了!
我想我会用这个。
你提到过你更喜欢的处理方式是模板化的小部件。这是非常有趣的事情,小部件作为页面控制器与模板!
1)我的第一个javascript web 2.0 MVC页面控制器是一个大的定制jQuery UI小部件。我听说jQuery UI团队计划将模板集成到他们的小部件中。在迁移到jquery with backbone.js后,我放弃了它。
2)据我所知,来自Javascript MVC的Justin Meyer采用了jQuery UI小部件工厂部分(jQuery UI小部件的基础部分),并在他的框架中将其用作页面控制器。
3)Mark Wubben在一次Dojo会议上谈到了模板:他说:
这就引出了一种新的有趣的Dojo小部件编写方法,它们可以变得更像控制器:处理DOM事件、实现应用逻辑和更新模型。视图将自动反映这些变化。
2条答案
按热度按时间bf1o4zei1#
对于简单的事情,您可以使用dojox.dtl。
我的首选项是创建一个模板化的小部件,另请参见Creating a custom widget的教程。
2mbi3lxu2#
我知道您需要更健壮的东西,但是对于非常简单的基于替换的模板,您可以使用dojo/_base_lang/replace,它很像dojox/dtl或Mustache的更简单形式,并且具有不在Dojox中的优点(因此不完全支持)。