如何在后台组织App

How to organize App in durandal?

本文关键字:App 后台      更新时间:2023-09-26

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

在那个版本中,当安装durandal包时,它会创建一个App文件夹,然后创建一个durandal文件夹,其中包含许多js文件。

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

基于教程,我创建了我的结构如下:http://screencast.com/t/13B4YhqExVRQ

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

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

我试着

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');
    });
});

你的问题相当固执己见,因为项目结构可能因你问的人而有很大不同。鉴于此,我将给你我的快速意见-

  1. 任何你不打算修改的东西都应该在你的脚本或供应商文件夹中。在你引用的项目结构中,我会有我的Durandal和相关的脚本在那里。
  2. 任何你计划修改的东西都应该是分开的。如果这意味着把App文件夹放在根目录下,那就这么做。我建议把它们都放在一个目录下(比如App),这样你就可以按照惯例设置所有的路由和其他应用程序代码。我总是像Durandal 2那样使用分离视图和视图模型的约定。x建议(root/app/views//root/app/viewmodels),并从那里有一个定义良好的结构,例如在每一侧都有一个主目录。

至于为什么它不能工作,你需要把main.js中的require.js配置指向Durandal所在的正确目录。

我会把这个添加到你的配置-

require.config ({

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

这个文档帮我找到了问题。

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