子文件夹中的文件时未定义的模块

时间:2015-11-18 13:22:56

标签: requirejs

我无法从不同目录加载依赖模块user

文件:

\index.html
\js\require.js
\js\main.js
\js\model\user.js
\js\model\post.js

\ index.html的

<script type="text/javascript" data-main="js/main" src="js/require.js"></script>

\ JS \ main.js

requirejs.config({
    baseUrl: 'js',
    paths: {
        model: 'model'
    }
});

require(['model/user'], function (user) {
    user.doAlert();
});

\ JS \模型\ user.js的

define('user', function () {
    return {
        doAlert: function() {
            alert('done');
        }
    };
});

当程序进入第user.doAlert()行时,我在控制台 TypeError中有一个例外:user.doAlert不是函数。我调试了user此时未定义。但是requirejs没有其他消息。文件正确加载(正如我在网络监视器中看到的那样)。

我尝试将user模块的定义更改为

define('model/user', function () {

但没有成功。

问题

  1. 我应该如何修复它?
  2. 还有另一个模型post - 用户应该依赖它。如何添加此依赖项(在上下文中) 文件位置)?

1 个答案:

答案 0 :(得分:1)

你错误地定义了一个模型

define(function () {
    return {
        doAlert: function() {
            alert('done');
        }
    };
});

或更简单:

define({
    doAlert: function() {
        alert('done');
    }
});

如果你需要依赖,那么:

define(['path/to/module'], function (module) {
    return {
        doAlert: function() {
            alert('done');
        }
    };
});