1

您好,我正在为我的应用程序使用 Backbone.js + require.js 我在 Firefox 中呈现模板时遇到问题。它在 Chrome 和 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;
});

有人可以让我知道是什么问题吗

提前致谢

4

1 回答 1

0

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

无论如何,您真正想要的是同一元素的 jQuery 包装版本,您可以使用this.$el. 如果由于某种原因您使用的是旧版本的 Backbone(最近添加了 $el),您可以改为$(this.el); 它的工作原理相同,但不太方便。

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

于 2012-06-05T16:53:45.357 回答