【发布时间】:2014-01-19 17:41:40
【问题描述】:
我正在使用 Durandal,我正在尝试将此模块用作另一个模块的依赖项:
define('Beer', function () {
return function Beer (name, brewery) {
this.name = name;
this.brewery = brewery;
};
});
在另一个模块中,我这样做:
define(['knockout', 'models/Beer'], function (ko, Beer) {
return {
displayName: 'Add',
name: ko.observable(),
brewery: ko.observable(),
save: function () {
var beer = new Beer(this.name(), this.brewery());
console.log(beer);
}
}
});
我的 javascript 已加载,因为我在路径中定义了它(并且我在 Firebug 中进行了检查)。但是我的第二个模块中的 Beer 参数是未定义的。我不知道为什么,因为我的 Beer 模块确实返回了一些东西(它返回了函数)。我还能看什么?我发现的大多数解决方案是(第一个)模块没有返回任何内容,但我的显然是。
更新 显然,当我删除 Beer 模块的名称时,它可以工作:
define(function() {
return function Beer (name, brewery) {
// ...
}
});
尽管this code 似乎可以工作,但它不适合我。谁能告诉我为什么?
【问题讨论】: