我的 Backbone.View 函数未定义



我正在扩展 Backbone.View,然后调用它的渲染函数,但我得到一个"未捕获的类型错误:view.render 不是一个函数"

代码(在文档加载中运行):

var view = Backbone.View.extend({
 id: "my-view",
 render: function() {
   console.log("in render, this =", this);
   this.el.innerHTML = "Hello";
   return this;
 }
});
console.log("outside view, view =", view);
document.body.appendChild(view.render().el);

控制台中的结果:

outside view, view = function (){return r.apply(this,arguments)}
VM639:58 Uncaught TypeError: view.render is not a function

看起来它是一个构造函数,但我尝试创建一个新 view() 然后调用它的函数并得到一个不同的错误:

Uncaught TypeError: this._ensureElement is not a function
at e.View (backbone-min.js:1)   

我在其他地方寻找过这个答案(骨干观点:函数未定义,渲染主干模型返回未定义的视图),但示例很复杂,我不知道如何将答案应用于我的代码。我举了一个非常简单的例子,希望能鼓励你回答它,即使我的错误是非常基本的。

这是一个jsfiddle:https://jsfiddle.net/s9Lhq82a/

您定义了一个从 Backbone.View 扩展的视图类。要创建该类的实例,您必须使用 new .

var View = Backbone.View.extend({
    // this is your View Class
});
var myView = new View(); // this is an instance of View, it has a render function
myView.render().el;

最新更新