Javascript 未捕获类型错误:无法读取属性';事件聚合器';未定义的类型(主干、木偶、RequireJS)
使用主干创建新应用程序。Marionette,当我运行Express应用程序并加载页面时,在控制台中出错:Javascript 未捕获类型错误:无法读取属性';事件聚合器';未定义的类型(主干、木偶、RequireJS),javascript,backbone.js,requirejs,underscore.js,marionette,Javascript,Backbone.js,Requirejs,Underscore.js,Marionette,使用主干创建新应用程序。Marionette,当我运行Express应用程序并加载页面时,在控制台中出错: Uncaught TypeError: Cannot read property 'EventAggregator' of undefined backbone.marionette.js:1504 显示它在实际的木偶库中。我已经看过那一行了: Marionette.EventAggregator = Backbone.Wreqr.EventAggregator; 我想,wreqr可
Uncaught TypeError: Cannot read property 'EventAggregator' of undefined
backbone.marionette.js:1504
显示它在实际的木偶
库中。我已经看过那一行了:
Marionette.EventAggregator = Backbone.Wreqr.EventAggregator;
我想,wreqr
可能是我必须添加的额外库
以下是创建应用程序的代码:
require([
'jquery',
'underscore',
'backbone',
'marionette'
], function( $, _, Backbone, Marionette ){
MyApp = new Backbone.Marionette.Application();
MyApp.addRegions({
main_region: '#main_region'
});
MyApp.addInitializer( function(options) {
var login_form_view = new LoginFormView();
});
});
以及设置库位置的require配置:
// using RequireJS 1.0.7
require.config({
paths: {
'$': 'libs/jquery-1.8.2-min',
'underscore': 'libs/underscore-min', // AMD support
'backbone': 'libs/backbone.min', // AMD support
'bootstrap' : 'libs/bootstrap.min',
'marionette' : 'libs/backbone.marionette',
'wreqr' : 'libs/backbone.wreqr',
'templates': '../templates',
'text': 'libs/require/text',
'login': 'views/user/login'
}
});
有人知道错误的原因吗?是的,wreqr依赖于木偶
require([
'jquery',
'underscore',
'backbone',
'wreqr',
'marionette'
], function( $, _, Backbone, Marionette ){
MyApp = new Backbone.Marionette.Application();
MyApp.addRegions({
main_region: '#main_region'
});
MyApp.addInitializer( function(options) {
var login_form_view = new LoginFormView();
});
您已经指定了Wreqr的路径,但也需要加载它。在你装木偶之前
require([
'jquery',
'underscore',
'backbone',
'wreqr',
'marionette'
], function( $, _, Backbone, Marionette ){
MyApp = new Backbone.Marionette.Application();
MyApp.addRegions({
main_region: '#main_region'
});
MyApp.addInitializer( function(options) {
var login_form_view = new LoginFormView();
});
})) 谢谢,我会试一试,然后再报告。一秒钟,成功!还必须添加EventBinder:FYI:v1.0.0-beta2,我这样做是为了“backbone.marionete.js”文件包含Wreqr和EventBinder。不过,如果需要,您可以下载“core”marionete.js文件,而不需要依赖项。