如何使用Dojo 1.10创建单页Web应用程序?

时间:2016-05-06 13:55:53

标签: dojo

我找到了几个关于如何创建单个页面应用程序的示例,但我不确定要采用哪条路径。我的网络应用程序纯粹基于桌面浏览器 - 不需要移动支持。

一个人正在使用dojox/app(但这主要针对移动应用程序 - 是否可以用于桌面应用程序,完全支持标准dojo,包括桌面小部件和功能?)

另一个人正在使用此示例Dojorama

我还发现了这个例子Dojomat

有推荐的方法吗?

2 个答案:

答案 0 :(得分:2)

这里有一个示例/入门应用程序我做了一段时间后,被dojo人祝福了。 https://github.com/denov/dojo-demo

答案 1 :(得分:1)

我没有很好的使用Dojo Toolkit的经验,但我在我的项目上做了这些步骤:

  • 为应用程序创建布局:

    <body class="claro">
        <div data-dojo-type="dijit/layout/LayoutContainer">
            <div data-dojo-type="app/MainMenu" data-dojo-props="region: 'center'"></div>
            <div data-dojo-type="dijit/layout/ContentContainer" id="contentContainer"></div>
        </div>
    </body>
    
  • 现在我注册了路由,当哈希值发生变化时,我会检查contentContainer

    var self = this;
    
    if (this.content){
        this.content.destroyRecursive(); // Dijit widget method
    }
    
    require([
        pathToApplicationModule // Maked as dedicated widget
    ], function (Widget){
        self.content = new Widget();
        self.content.placeAt(registry.byId("contentContainer");    
        self.content.startup();
    });
    
  • 应用程序的每个部分都是Widget,例如:

    define([
        "dojo/_base/declare",
        "dijit/_WidgetBase",
        "dijit/_TemplatedMixin",
        "dijit/_WidgetsInTemplateMixin",
        "dojo/text!./templates/MainMenu.html",
        "dijit/MenuBar",
        "dijit/MenuItem"
    ], function (
        declare,
        WidgetBase,
        TemplatedMixin,
        WidgetsInTemplateMixin,
        template
    ){
        return declare("app.MainMenu", [
            WidgetBase,
            TemplatedMixin,
            WidgetsInTemplateMixin
        ], {
            // Here main menu properties: template, actions, etc.
        });
    });
    

用户权限怎么样?我不知道。也许,通过AJAX加载。