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 に答える