2014-10-12 2 views
-1

Я начал новую магистраль, марионетку и потребовал проект с использованием версии 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; 
}); 
+0

уверен, что причина этой ошибки не в кодовой части, которую вы предоставили. childViewContainer - это свойство CompositeView, я не вижу, что происходит за пределами Router? – Evgeniy

+0

Ну, когда вы добавляете точки останова, возникла ошибка перед созданием маршрутизатора или даже запуском сценария маршрутизатора:/Он в основном выдает ошибку при загрузке файла Marrionette, поэтому я думал, что это должно быть что-то, что я сделал неправильно в главном или файл приложения. Я не могу найти какие-либо рабочие марионеточные плиты v2 для перекрестной ссылки или даже просто использовать для начала. –

+1

Где вы используете параметр '{container: '#page'}', который передается при инициализации приложения? Я не вижу регионов. Я видел то же самое в документации Marionette, но это не так, как вы должны его использовать. Вы должны добавить инициализатор, который будет использовать этот параметр для присоединения нового региона к '' # странице''. –

ответ

-1

Просто посмотрите на свой файл backbone.js. Пусто. Скачайте backbone.js с http://backbonejs.org/ и замените его.

+0

Мой файл backbone.js не пуст, хотя. Он был загружен с официального сайта –

+1

, пожалуйста, предоставьте любой ваш код «Marionette.CompositeView». изменения от элемента к ребенку – Muhaimin

-1

Я сам столкнулся с этой проблемой. Проблема заключалась в том, что Marionette была включена в список экземпляров. (я ошибочно разместил тег сценария для марионетки на странице из cdnjs, а также попытался включить статический файл локально через require). удаление ссылки на внешний JS-файл помогло мне ...

Смежные вопросы