0

在我的角度应用程序中使用 require 时,我在设置 r.js 时遇到问题。我是使用 AMD 的新手,所以它可能很容易解决。不幸的是,目录结构必须保持原样,因为需要能够使用相同的默认组件添加更多客户端。

我得到的错误是它找不到控制器依赖项。尝试从 Client#1/Directory_For_Prod_Packs/Angular/Default/_Controllers/.js 引用它们。所以本质上它是在构建文件所在的末尾添加整个绝对路径,或者至少在我看来是这样。任何帮助都会很棒。本质上,我只想拥有一包我所有的指令、服务、控制器等。或者一包 controllers.js 然后是directives.js 等等。

这是我的目录结构。

      • 角.js
    • 默认
      • 控制器
        • _Controllers.js //控制器包
        • .js //所有单独的控制器
      • 指令
        • _Directives.js
        • .js
    • 客户#1
      • main.js //需要配置
      • 应用程序.js
      • build.js // r.js 构建配置

这是我的 r.js 的 build.js

({
baseUrl: '../../lib/Angular',
dir: "../../Client#1/ProductionBuild",
paths: {
    "controllers": '../../Default/_Controllers/_Controllers',     
}, 
modules: [
    {
    name: "controllers"
    }
] 
})

最后这是我的 _Controller.js

define(['angular',
    '../../Default/_Controllers/controller1.js',
    '../../Default/_Controllers/controller2.js'],
    function(angular) {
        'use strict';

        var dependencies = ['controller1',
                            'controller2',];

        angular.module('app.controllers', dependencies);
    }
);
4

1 回答 1

0

我不确定到底是什么问题(目录结构和../..似乎不匹配,虽然我可能弄错了),但尝试将build.js属性设置为:

  • baseUrl:包含脚本的文件夹,相对于加载它们的 HTML 页面,而不是相对于build.js
  • dir:构建输出文件夹,相对于build.js
  • appDir:应用程序文件夹。它可能包含index.html引导应用程序脚本的一个。配置属性指向的文件夹baseUrl必须在这个下面!这是相对于build.js.

多加小心baseUrl,那些../..看起来很可疑。它是相对的index.html,不是build.js

于 2013-10-08T12:02:10.190 回答