Javascript Backbone.js Firefox问题

Javascript Backbone.js Firefox问题,javascript,backbone.js,requirejs,Javascript,Backbone.js,Requirejs,您好,我正在为我的应用程序使用Backbone.js+require.js。我在Firefox中呈现模板时遇到问题。它在铬和Ie中工作良好 下面是要渲染的代码 define([ 'jquery', 'underscore', 'backbone', 'text!templates/home/main.html' ], function ($, _, Backbone, mainHomeTemplate) { var mainHomeView = Backbone.Vie

您好,我正在为我的应用程序使用Backbone.js+require.js。我在Firefox中呈现模板时遇到问题。它在铬和Ie中工作良好

下面是要渲染的代码

define([
  'jquery',
  'underscore',
  'backbone',
  'text!templates/home/main.html'
], function ($, _, Backbone, mainHomeTemplate) {

    var mainHomeView = Backbone.View.extend({
        el: $("#page"),
        render: function () {
//            console.log("loading template");
            this.el.html(mainHomeTemplate);
        }
    });
    return new mainHomeView;
});
谁能告诉我有什么问题吗


提前感谢

此.el
是对视图的原始DOM元素的引用。我猜Chrome必须在其原始DOM元素上有一个HTML方法,但(显然)Firefox没有

在任何情况下,您真正想要的是同一元素的jQuery包装版本,您可以使用
this.$el
获得它。如果出于某种原因,您正在使用旧版本的主干($el是最近添加的),您可以只执行
$(this.el)
;它的工作原理是一样的,但稍微不太方便


如果您使用jQuery包装的元素版本,那么您的
.html(mainHomeTemplate)
调用将起作用,因为jQuery对象总是有一个“html”方法。

代码是否包装在$(document).ready({…})中?您想在哪里包装?在视图中?换句话说,您确定在执行代码时可以访问$(“#page”)吗?我建议您将整个代码包装在.ready()中,然后进行检查。我尝试过这样做,但看起来仍然存在相同的问题,我在firebug控制台中没有看到任何javascript错误。有什么我遗漏的吗?我会想象你的el不是你想象的那样。您可以尝试console.logging来确认。如果我是正确的,您可能希望尝试在视图的initialize方法中设置el(via.setElement)(甚至在render本身中,具体取决于调用的时间)。