Backbone View实例未按预期工作

时间:2016-04-03 17:29:07

标签: javascript backbone.js

我想我错过了一些非常微不足道的事情。我创建了Backbone View如下(不扩展Backbone.View):

var PlayersView = new Backbone.View({
    initialize: function() {
        this.render();
    },
    render: function() {
        console.log("hello World");
    }
});

但是当我运行此代码时,它不会记录任何内容。当我明确地执行:PlayersView.render();时,它不起作用。

但以下代码有效:

var PlayersView = Backbone.View.extend({
    initialize: function() {
        this.render();
    },
    render: function() {
        console.log("hello World");
    }
});

var playersview = new PlayersView();

2 个答案:

答案 0 :(得分:1)

要添加到构造对象的View构造函数does not accept properties。它接受一些特殊选项,如'model','tagName'等。但是,您的第一个代码段中的initialize(...)render(...)属性实际上会被忽略。

提供initializerender的正确方法是使用Backbone.View.extend({...})

答案 1 :(得分:0)

来自http://backbonejs.org/#View-extend

<强>延伸

  

Backbone.View.extend(properties,[classProperties])开始使用   通过创建自定义视图类来查看视图。你想要覆盖   渲染功能,指定声明性事件,也许是   视图的根元素的tagName,className或id。

换句话说,您的自定义渲染/初始化函数未覆盖您的第一个视图的渲染方法。 使用extend时,您实际上让Backbone了解您希望使用自己的方法而不是“默认”方法。