如何在durandal组织应用程序?

时间:2014-08-06 11:59:09

标签: javascript single-page-application durandal

我根据@john_papa的教程创建了一个简单的durandal SPA,在这个视频来自复数视频,他安装了nuget包,但视频已经像一年了。

在该版本中,当安装durandal软件包时,它将创建一个App文件夹,然后创建一个带有许多js文件的durandal文件夹。

在durandal的新版本中,没有创建App文件夹,而是在/ scripts /文件夹下创建所有durandal文件。

根据教程,我创建了这样的结构: http://screencast.com/t/13B4YhqExVRQ

然而,当我运行它时,我得到了F12开发人员工具这个错误: http://screencast.com/t/Sfdd0kLK

我知道路径与教程不同,这就是为什么我要问我应该如何组织以及如何使用define方法或函数。

我试过

define(['Scripts/durandal/system', 'logger'],

但是没有用

我注意到我的main.js有:

require.config({
    paths: { "text": "durandal/amd/text" }
});

define(function (require) {
    var system = require('durandal/system');
    app = require('durandal/app');


    system.debug(true);
    app().start().then(function () {
        app.setRoot('shell');
    });
});

2 个答案:

答案 0 :(得分:1)

您的问题很明确,项目结构可能会根据您的要求而有很大差异。鉴于我会给你我的快速意见 -

  1. 您不打算修改的任何内容都应位于您的脚本或供应商文件夹中。在您引用的项目结构中,我会在那里使用我的Durandal和相关脚本。
  2. 您计划修改的任何内容都应该是分开的。如果这意味着在根目录下放置App文件夹,那么就这样做。我建议将它们保存在一个目录下(例如App),以便按照惯例设置所有路由和其他应用程序代码。
  3. 我总是使用分离视图和视图模型的约定,如Durandal 2.x建议的那样(root / app / views // root / app / viewmodels)并且从那里有一个定义良好的结构,例如每个都有一个主目录侧。
  4. 至于为什么它目前没有工作,你需要将main.js中的require.js配置指向Durandal所在的正确目录。

    我会将此添加到您的配置 -

    require.config({

    paths: { 
        'text': 'durandal/amd/text',
        'durandal': '../Scripts/durandal',
        'plugins': '../Scripts/durandal/plugins',
        'transitions': '../Scripts/durandal/transitions' }
    });
    

答案 1 :(得分:0)

这份文件帮助我找到了问题。

http://durandaljs.com/documentation/Conversion-Guide.html