Я начал новую магистраль, марионетку и потребовал проект с использованием версии 2.2 (ранее я работал с 1.8). Кажется, что многое изменилось. Я получаю сообщение об ошибке, когда браузер загружает марионетку:Ошибка обновления Marionette v2.2 - Невозможно прочитать свойство «ChildViewContainer» неопределенного
Uncaught TypeError: Cannot read property 'ChildViewContainer' of undefined
Это мой main.js файл:
require.config({
baseURL: 'scripts',
paths: {
"jquery": "lib/jquery",
"underscore": "lib/underscore",
"backbone": "lib/backbone",
"marionette": 'lib/backbone.marionette',
"templates": "../templates",
"text": "lib/text"
},
shim: {
underscore: {
exports: '_'
},
backbone: {
deps: ['underscore', 'jquery'],
exports: 'Backbone'
},
marionette: {
deps: ['jquery', 'underscore', 'backbone'],
exports: 'Marionette'
},
waitSeconds: 15
}
});
require([ "app", "marionette"], function(App, marionette) {
App.start();
});
И это мой app.js файл:
define(["marionette", "router"], function (Marionette, AppRouter) {
var MyApp = Marionette.Application.extend({
initialize: function(options) {
console.log("options.container");
}
});
var MyApp = new MyApp({container: '#page'});
MyApp.addInitializer(function (options) {
MyApp.Router = new AppRouter();
Backbone.history.start();
});
// export the app from this module
return MyApp;
});
уверен, что причина этой ошибки не в кодовой части, которую вы предоставили. childViewContainer - это свойство CompositeView, я не вижу, что происходит за пределами Router? – Evgeniy
Ну, когда вы добавляете точки останова, возникла ошибка перед созданием маршрутизатора или даже запуском сценария маршрутизатора:/Он в основном выдает ошибку при загрузке файла Marrionette, поэтому я думал, что это должно быть что-то, что я сделал неправильно в главном или файл приложения. Я не могу найти какие-либо рабочие марионеточные плиты v2 для перекрестной ссылки или даже просто использовать для начала. –
Где вы используете параметр '{container: '#page'}', который передается при инициализации приложения? Я не вижу регионов. Я видел то же самое в документации Marionette, но это не так, как вы должны его использовать. Вы должны добавить инициализатор, который будет использовать этот параметр для присоединения нового региона к '' # странице''. –