javascript - 访问 require.js 回调的返回值

标签 javascript return-value requirejs amd

我在一个文件中定义了一个如下所示的模块

define(['mod1', 'mod2'], function (mod1, mod2) {

    var IndexView = Backbone.View.extend({

        ...

    });

    return new IndexView;

});

这是另一个文件(我的 Backbone 路由器文件)中需要的,内容如下

require(['src/views/index']);

我可以使返回的 IndexView 对象可以在路由器的范围内访问,而不需要在我的应用程序的命名空间中存储引用吗?

最佳答案

使用 require.js 传递 Backbone View /模型的实例很快就会让你的生活变得非常不愉快。让您的模块仅返回 View /模型的定义会更容易,这样可以在同一范围内实例化它们。

因此,如果您让 View 模块仅返回定义:

// IndexView module
define(['dep1', 'dep2'], function (dep1, dep2) {

    var IndexView = Backbone.View.extend({

        ...

    });

    return IndexView;

});

然后您可以在路由器内实例化它:

// our main requirejs function
requirejs(['path/to/indexview'], function (IndexView) {

    var AppRouter = Backbone.Router.extend({

        initialize: function () {

            // bind our IndexView to the router
            this.IndexView = new IndexView();

        }

    });

    // start the app
    var app = new AppRouter();

});

这样您的代码仍然是使用 Require.js 进行模块化的,但您可以使用 this 传递路由器的作用域。

关于javascript - 访问 require.js 回调的返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13346399/

相关文章:

javascript - 在windows10中安装Chilkat-11后出错

java - 通用返回值(java)

npm - 将 package.json 中的 js 依赖项捆绑到一个缩小的文件中,而不需要在主文件中调用?

requirejs - 在 RequireJS 之外使用 LessCSS

javascript - 点击下载按钮直接下载图片

javascript - 如何从 Objective-C 代码调用 javascript 代码?

javascript - Django:如何保存mxGraph,以便当用户刷新图表时保持不变? (异步)

PHP 不返回变量

C++函数返回数组

javascript - 你应该将 IIFE 与 RequireJS 一起使用吗