1
브라우저 백서에서 백본 마리오네트를 사용합니다.브라우저에서 백본 마리오 네트를 사용할 때 DOM에 "el"이 있어야합니다.
보기를 표시하는 데 문제가 발생했습니다.
나는 addRegions
이며 ItemView
을 보여주고 싶습니다.
그러나 콘솔 쇼 오류 : Uncaught Error: An "el" #tmp_area must exist in DOM
.
내 HTML 파일의 크기는 #tmp_area
입니다.
require.js를 사용할 때이 문제는 표시되지 않지만 browserify를 사용하도록 변경하면 문제가 발생합니다.
무엇이 잘못 되었나요?
아래 코드는 제 코드입니다.
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,
})
제발 도와주세요!
감사합니다.
감사합니다. 그것은 정말로 그것을 고친다. 하지만 js를 사용할 때 왜 발생하지 않는지 궁금합니다. –
@JackHou 메인 파일을 정의하기 위해 require 스크립트의'data-main' 속성을 사용했을 것입니다. 맞습니까? RequireJS는이 주 파일을 비동기 적으로로드하므로 RequireJS가 가져온 시점에 문서를 준비 할 수 있습니다. –
알았어, 알았다! 귀하의 회신은 나를 많이 배웁니다. 감사! –