2

私は、javaScript の経験がほとんどない backbone.js の初心者です。あちこちにあるさまざまなバックボーンチュートリアルを試していました。たとえば、このチュートリアルから私は学ぼうとしていました

バックボーンベビーステップ

上記のようなチュートリアルのほとんどでは、内部で次のコードを使用Backbone.View.extendして、モデルを html テンプレートに設定し、レンダリングします。

render: function() {
    var tmpl = _.template(this.template);
    this.$el.html(tmpl(this.model.toJSON()));
    return this;
    }

しかし、クロムデバッガーでコードを実行すると、これthis.$elは未定義であると表示されます。私はたくさん検索しましたが、解決策が得られませんでした.コードを自分で修正したところ、うまくいきました.

$(this.el).html(tmpl(this.model.toJSON()));

cdnjsバックボーン、アンダースコア、jquery にホストされたライブラリを使用しています。

this.$elインターネット上のすべてのバックボーン チュートリアルでバージョンが使用されているのに、それが機能しない理由を知りたいですか?

また、ホストされているファイルではなく、チュートリアルで提供されているライブラリ (バックボーン、アンダースコアなど) ファイルを使用すると、chrome デバッガーがライブラリでさまざまなエラーを表示します。なぜですか?

4

2 に答える 2

8

ドキュメントで指定されている変更ログに従って、$elプロパティa cached jQuery (or Zepto) reference to the view's elementがバージョンに追加されました0.9.0backbone使用しているのバージョンを 10.9.0以上にアップグレードしてみてください。その後、動作するはずです。

于 2013-01-08T07:07:13.977 に答える
1

以下のようにビューで定義する必要があります

var ElementView = Backbone.View.extend({
    el: $("#picker")
}
于 2013-01-08T06:51:55.897 に答える