Javascript Can';t在Backbone.js中向View.el添加新元素

Javascript Can';t在Backbone.js中向View.el添加新元素,javascript,backbone.js,Javascript,Backbone.js,我目前正在学习骨干,面临以下问题。 我想将新元素附加到视图的this.el元素。但事实并非如此。 这是我的密码: var MyData = Backbone.Model.extend({ initialize: function() { this.bind('error', function(model, error) { console.log('error:' + error); }); }, defaults:

我目前正在学习骨干,面临以下问题。 我想将新元素附加到视图的this.el元素。但事实并非如此。 这是我的密码:

var MyData = Backbone.Model.extend({
    initialize: function() {
        this.bind('error', function(model, error) {
            console.log('error:' + error);
        });
    },
    defaults: {
        name: "Jo",
        age: 18,
        skill: 0
    },
    validate: function(attributes) {
        if (attributes.name == "Jonh")
            return false;
        return true;
    }
});

var MyView1 = Backbone.View.extend({
    initialize: function() {
        this.$el.empty();
    },
    el: '#middle',
    events: {
        "click": "render"
    },
    render: function() {
        this.$el.append(this.model.get('name'));    
    }
});

var myData = new MyData();
var myView1 = new MyView1( {model: myData} );
在html文件中,有一个div元素定义如下:

<div id="middle"></div>

代码工作正常,但我没有看到任何附加元素。 我也尝试过这样附加:

this.$el.append($("<p>").append(this.model.get('name')));   
this.el.append($(“”).append(this.model.get('name'));

我刚把它加载到我的IDE中,效果很好。您的控制台没有显示任何错误?

由于您的javascript脚本在加载页面之前加载,主干视图无法看到
#middle
div,因此您必须在加载页面后初始化视图:

$(document).ready(function() {
    // load your views
});

你能显示你在html文件中附加的库吗?我指的是下划线jquery等。从内容开始,我只是有jquery(谷歌),下划线,主干,然后是一个脚本文件,我粘贴在你的代码中。你能给主干和underescore提供准确的URL吗?因为我在更改版本时遇到了一些问题,所以它开始显示错误。我想我有一个不正确的版本,我只是在测试之前访问了这两个站点并下载了最新的版本。最新开发版本。确定。我也这么做了。如何单击空白div?@haemhweg我单击了该区域,但是它太小了,所以我尝试直接调用myView1.render();也不起作用。出于测试目的,我制作了#middle div 200px x x 200px,并给它一个背景色,这样我就可以看到它了。我不知道为什么它对你不起作用。我只是再次执行了这些步骤,以确保它仍然可以正常工作。将模型和视图初始化代码放入$(document).ready(function(){//initialize view and model})@马克西姆斯对我也很好。您可以在这里检查依赖项。如果它对您不起作用,那么您的控制台肯定有一些错误。