Я пытаюсь создать проект марионетки с использованием браузера и es6. При создании CollectionView я получаю ошибку Uncaught TypeError: Backbone.ChildViewContainer is not a constructor
.Получение Backbone.ChildViewContainer не является конструктором, использующим browserify & es6
Не хватает ли чего-нибудь загрузки? Кажется, ничего не может найти об этом в Интернете.
Вот мой взгляд коллекция:
import {ItemView, CollectionView} from 'backbone.marionette';
import navTemplate from '../templates/navigation.hbs';
import navItemTemplate from '../templates/_navItem.hbs';
var NavigationItem = ItemView.extend({
template: navItemTemplate
});
var NavigationView = CollectionView.extend({
template: navTemplate,
childView: NavigationItem,
childViewContainer: '.left-navigation',
});
export default NavigationView;
и мой макет, который создает его
import {LayoutView} from 'backbone.marionette';
import layoutTemplate from './templates/layout.hbs';
import NavigationView from './Views/navigation';
export default class AppLayout extends LayoutView {
constructor(options) {
super(options);
this.template = layoutTemplate;
}
regions() {
return {
'navigation': '.left-aside'
};
}
onRender() {
console.log(this.getRegion('navigation'));
this.getRegion('navigation').show(new NavigationView());
}
}
Я также использую прокладку использовать backbone.radio, но это не должно влиять на это:
(function(root, factory) {
if (typeof define === 'function' && define.amd) {
define(['backbone.marionette', 'backbone.radio', 'underscore'], factory);
} else if (typeof exports !== 'undefined') {
module.exports = factory(require('backbone.marionette'), require('backbone.radio'), require('underscore'));
} else {
factory(root.Backbone.Marionette, root.Backbone.Radio, root._);
}
}(this, function(Marionette, Radio, _) {
'use strict';
Marionette.Application.prototype._initChannel = function() {
this.channelName = _.result(this, 'channelName') || 'global';
this.channel = _.result(this, 'channel') || Radio.channel(this.channelName);
};
}));
Редактировать: Я обнаружил, что мой скомпилированный файл имеет много копий магистрали, так что это может быть проблемой ...
Я с теми же проблемами, но с использованием машинописи и Webpack - это было нормально, пока я не обновил свои пакеты npm. Насколько я могу судить, я использую Marionette 2.4.5 и Backbone 1.3.3 – user888734
^те версии, которые у меня есть. Я думаю, что это связано с наличием нескольких базовых определений в моем скомпилированном файле, но только один backbone.babysitter –
Знаете ли вы, почему существует несколько базовых определений? – user888734