Я использую марионетку магии в браузере.«el» должен существовать в DOM при использовании базовой марионетки в браузере.
У меня возникла проблема с отображением вида.
У меня есть addRegions
и хочу показать ItemView
.
Но консоль показывает ошибку: Uncaught Error: An "el" #tmp_area must exist in DOM
.
В моем файле HTML есть #tmp_area
.
Когда я использую require.js, он не показывает эту проблему, но это произошло, когда я перейду на использование браузера.
Я не знаю, что случилось.
Ниже приведен мой код.
app.js
var Backbone = require('backbone');
var $ = require('jquery');
Backbone.$ = $;
var Marionette = require('backbone.marionette');
var MyView = require('./views/my_view');
var app = new Marionette.Application();
app.addRegions({
tmp_area: "#tmp_area"
});
app.addInitializer(function() {
var myView = new MyView();
app.tmp_area.show(myView);
});
app.on("initialize:after", function() {
if (Backbone.history) {
Backbone.history.start();
}
});
app.start();
my_view.js
var $ = require('jquery');
var Backbone = require('backbone');
var Marionette = require('backbone.marionette');
var templates = require('../templates/tmp.hbs');
Backbone.$ = $;
module.exports = Marionette.ItemView.extend({
template: templates,
})
Пожалуйста, помогите мне!
Я действительно ценю!
спасибо !! Это действительно исправить. Но мне любопытно, почему этого не происходит, когда я использую require js. –
@JackHou Вы, вероятно, использовали атрибут 'data-main' скрипта require для определения основного файла, не так ли? RequireJS загружает этот основной файл асинхронно, поэтому документ был готов в то время, когда RequireJS извлек его. –
Хорошо, я понял! Ваш ответ заставляет меня многому учиться. Благодаря! –