0

在我的整个应用程序中,我引用了一个名为 hub.js 的单例 AMD - 定义如下:

// hub.js
define(['services/dataservice'], function (dataservice) {
// list of properties
// dataservice === undefined - why?
}

我通过像这样包含它来从其他虚拟机中引用它:

define(['durandal/app', 'services/dataservice', 'durandal/plugins/router', 'services/hub' ], function (app, dataservice, router, hub) {

但是我需要从我的集线器访问我的数据服务,正如您在第一个片段中看到的那样。undefined尽管使用与其他虚拟机完全相同的语法,但从 集线器内部对数据服务的引用都是如此。

如果我使用与服务/数据服务不同的路径,则找不到 404,因此 JS 似乎看到了该文件,但由于某种原因没有将其加载到此单例中。

这是怎么回事?

4

1 回答 1

1

这是一个循环引用:

https://groups.google.com/forum/#!topic/durandaljs/1BePNd8wk7M

http://requirejs.org/docs/api.html#circular

于 2013-07-10T19:33:05.127 回答