不能在View中添加新元素.el在Backbone.js中

Can't append new elements to View.el in Backbone.js

本文关键字:el Backbone 元素 js View 添加 新元素 不能      更新时间:2023-09-26

我目前正在学习主干,面临以下问题。我想给this添加新元素。元素。但这并没有发生。下面是我的代码:

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')));   

因为你的javascript脚本在页面加载之前加载,骨干视图不能看到#middlediv,所以你必须在页面加载后初始化视图:

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

我刚刚在我的IDE中加载了这个,它工作得很好。控制台没有显示任何错误吗?