如何使用Dojo1.10创建单页web应用程序?

如何使用Dojo1.10创建单页web应用程序?,dojo,Dojo,我找到了几个关于如何创建单页应用程序的示例,但我不确定该走哪条路。我的web应用程序纯粹基于桌面浏览器-不需要移动支持 一个是使用(但这主要是针对移动应用程序的——它可以用于桌面应用程序,并完全支持从标准dojo到桌面小部件和功能的一切吗?) 另一个是使用这个例子 我也发现了这个例子 有推荐的方法吗 这是我不久前做的一个示例/入门应用程序,它受到了dojo人的祝福 我没有使用Dojo Toolkit的丰富经验,但我在我的项目中采取了以下步骤: 为应用程序创建布局: <body class

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

一个是使用(但这主要是针对移动应用程序的——它可以用于桌面应用程序,并完全支持从标准dojo到桌面小部件和功能的一切吗?)

另一个是使用这个例子

我也发现了这个例子


有推荐的方法吗

这是我不久前做的一个示例/入门应用程序,它受到了dojo人的祝福

我没有使用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>
    
  • 应用程序的每个部分都是小部件,例如:

    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加载。

在main.js中,注释提到了一个名为run.js的文件,这是什么,我在文件夹中没有看到它。还有-app.config.js的作用是什么?我没有包括这个,应用程序仍然可以正常运行。看起来run.js是一些奇怪的东西,需要删除或更新。谢谢你指出这一点。你是在问app.profile.js吗?如果是这样,它将用于创建构建。在很多js代码中,您会看到类似var that=this或var_this=this这样的东西。这样做是为了将其引入在该变量的同一作用域中定义的函数的局部作用域中。就像你在函数内部引用它一样,它将是函数的一部分,而不是函数的“外部”。希望这是有道理的。。dojo确实提供了非常方便的lang.hitch()。@erotavlas-神奇发生在index.html的第55行。它只加载main.js。如果您查看main.js,您将看到它正在加载HomePage.js。有关详细信息,请访问
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.
    });
});