Javascript 访问require.js回调的返回值
我在一个文件中定义了如下模块Javascript 访问require.js回调的返回值,javascript,return-value,requirejs,amd,Javascript,Return Value,Requirejs,Amd,我在一个文件中定义了如下模块 define(['mod1', 'mod2'], function (mod1, mod2) { var IndexView = Backbone.View.extend({ ... }); return new IndexView; }); 这是从另一个文件(我的主干路由器文件)中需要的,如下所示 require(['src/views/index']); 我可以让返回的IndexView对象从路由器的作用域中
define(['mod1', 'mod2'], function (mod1, mod2) {
var IndexView = Backbone.View.extend({
...
});
return new IndexView;
});
这是从另一个文件(我的主干路由器文件)中需要的,如下所示
require(['src/views/index']);
我可以让返回的
IndexView
对象从路由器的作用域中访问,而不必在我的应用程序名称空间中存储引用吗?使用require.js传递主干视图/模型的实例会很快让你的生活非常不愉快。让模块只返回视图/模型的定义会容易得多,这样可以在同一范围内实例化它们
因此,如果让视图模块仅返回定义:
// 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
传递Require.js主干视图/模型的实例,这将很快让您的生活非常不愉快。让模块只返回视图/模型的定义会容易得多,这样可以在同一范围内实例化它们
因此,如果让视图模块仅返回定义:
// 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
传递路由器的作用域