Backbone js view render click方法不调用[非常基础]

Backbone js view render click method not calling [Very Basic]

我是backbone js的蹒跚学步,实际上昨天出生..

学习本教程 - https://www.youtube.com/watch?v=_6pBvMK1Qgo

我正在尝试执行这个简单的视图代码,但是渲染方法没有被调用 -

    <script type="text/javascript">
    model = Backbone.Model.extend ({
        data : [
            {text : "Google", href : "www.google.com"},
            {text : "Facebook", href : "www.facebook.com"}
        ]
    });

    var View = Backbone.View.extend({
        initialize : function () {
            console.log('Initializing...!!!');
            this.template = $('#list-template').children();
        },
        el : '#container',
        events : {
            'click' : 'render'
        },
        render : function () {
            console.log('button clicked');
            var data = this.model.get('data');
            for (i=0, j=data.length; i<j; i++) {
                var li = this.template.clone().find('a').attr('href', data[i].href).text(data[i].text).end();
                this.$el.find('ul').append(li);
            }
        }
    });

    var view = new View({model : model});
</script>
<div id="container">
    <button>Load</button>
    <ul id="list">
    </ul>
</div>

<div id="list-template">
    <li><a href=""></a></li>
</div>

请让我知道我做错了什么蠢事。

控制台日志给出 -

 Initializing...!!!

首先,您应该以正确的方式描述您的模型 - 创建一个 class 然后创建此 class 的实例:

var Model = Backbone.Model.extend ({});
var model = new Model({
    data : [
        {text : "Google", href : "www.google.com"},
        {text : "Facebook", href : "www.facebook.com"}
    ]
});

可以直接调用render():

var view = new View({model : model});
view.render();

但您的 click 活动也可以。 这是工作的 jsfiddle:http://jsfiddle.net/utm3w6nb/3/

我发现了问题。我的脚本在我的 DOM 之上,所以渲染在我的 DOM 可以初始化之前被调用。我在 ready 上添加了 jquery,它现在可以正常工作了。谢谢