【问题标题】:Dojo and templating solutionsDojo 和模板解决方案
【发布时间】:2012-02-10 07:54:10
【问题描述】:

通常我在 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 团队正计划将模板集成到他们的小部件中。 在使用主干.js 迁移到 jquery 后,我拒绝了它。

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

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

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

【问题讨论】:

    标签: templates dojo


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2013-02-25
        • 2013-11-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-11
        • 1970-01-01
        • 2011-11-01
        • 1970-01-01
        相关资源
        最近更新 更多