你好我在我的应用程序中使用Backbone.js + require.js我在Firefox中渲染模板时遇到问题。它在Chrome中运行良好,即
这是渲染的代码
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;
});
有人可以告诉我这是什么问题
提前致谢
答案 0 :(得分:0)
this.el
是对视图的原始DOM元素的引用。我想Chrome必须在其原始DOM元素上使用HTML方法,但(显然)Firefox不会。
在任何情况下,你真正想要的是同一元素的jQuery包装版本,你可以使用this.$el
获得。如果由于某种原因你使用的是较旧版本的Backbone(最近添加了$ el),你可以改为$(this.el)
;它会工作相同,但它不太方便。
如果你使用该元素的jQuery包装版本,那么你的.html(mainHomeTemplate)
调用将起作用,因为jQuery对象总是有一个“html”方法。