Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript &引用;el";在browserify中使用主干木偶时必须存在于DOM中_Javascript_Backbone.js_Marionette_Browserify - Fatal编程技术网

Javascript &引用;el";在browserify中使用主干木偶时必须存在于DOM中

Javascript &引用;el";在browserify中使用主干木偶时必须存在于DOM中,javascript,backbone.js,marionette,browserify,Javascript,Backbone.js,Marionette,Browserify,我在browserify中使用主干木偶 我遇到了一个显示视图的问题 我有addRegions,想显示ItemView 但是控制台显示错误:未捕获错误:DOM中必须存在一个“el”#tmp_区域 我的HTML文件有#tmp_区域区域 当我使用require.js时,它没有显示这个问题,但当我改为使用browserify时,它发生了 我不知道怎么了 下面是我的代码 app.js var Backbone = require('backbone'); var $ = require('jquery')

我在browserify中使用主干木偶

我遇到了一个显示视图的问题

我有
addRegions
,想显示
ItemView

但是控制台显示错误:
未捕获错误:DOM中必须存在一个“el”#tmp_区域

我的HTML文件有
#tmp_区域
区域

当我使用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();
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,
})
my_view.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();
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,
})
请帮帮我


我真的很感激

我很确定这与文档就绪状态有关。您可以将脚本放在HTML的底部,或将应用程序初始化步骤包装到函数中。

谢谢!!这真的解决了它。但我很好奇为什么我使用require js时不会发生这种情况。@JackHou您可能使用require脚本的
data main
属性来定义主文件,对吗?RequireJS异步加载这个主文件,这就是为什么在RequireJS获取文档时文档已经准备好了。