2

私はこのオンライン電子ブックに続いてバックボーンを学び始めたところです。

しかし、私は本当に理解していないインポートエラーのためにToDoアプリの作成に固執しています...

Backboneの公式ウェブサイトからBackbone.jsとbackbone-min.jsをダウンロードします

index.htmlで、BackboneまたはBackbone-min.jsをインポートしようとしましたが、Firebugコンソールで次の結果が得られました。

Backbone.jsのインポート

<script src="js/lib/zepto.min.js"></script>
<script src="js/lib/underscore.js"></script>
<script src="js/lib/backbone.js"></script>

TypeError: this.$el.off is not a function
backbone.js line 1325 : this.$el.off('.delegateEvents' + this.cid);

Backbone-min.jsのインポート

<script src="js/lib/zepto.min.js"></script>
<script src="js/lib/underscore.js"></script>
<script src="js/lib/backbone-min.js"></script>

TypeError: this.listenTo is not a function
app.js line 34 : this.listenTo(app.Todos, 'add', this.addOne);

app.jsこのバックボーンビューを参照しています。このビューからのコードの抜粋は次のとおりです。

initialize: function() {
  this.allCheckbox = this.$('#toggle-all')[0];
  this.$input = this.$('#new-todo');
  this.$footer = this.$('#footer');
  this.$main = this.$('#main');

  this.listenTo(app.Todos, 'add', this.addOne);
  this.listenTo(app.Todos, 'reset', this.addAll);
  this.listenTo(app.Todos, 'change:completed', this.filterOne);
  this.listenTo(app.Todos,'filter', this.filterAll);
  this.listenTo(app.Todos, 'all', this.render);

  app.Todos.fetch();
},

すでにこの種の問題が発生している場合...バックボーンをインポートしようとするとエラーが発生する理由が本当に理解できず、ListenTo関数の問題を理解するのに十分なスキルがないことを認めなければなりません...

4

3 に答える 3

3

バックボーンの前にunderscore.jsを含める必要があります。

<script src="underscore-min.js"></script>
<script src="backbone-min.js"></script>

http://backbonejs.org/によると:

Backboneの唯一のハード依存関係は、Underscore.js(> = 1.4.3)またはLo-Dashのいずれかです。RESTfulな永続性のために、Backbone.Routerによる履歴サポートとBackbone.ViewによるDOM操作には、json2.jsと、jQuery(> = 1.7.0)またはZeptoのいずれかが含まれます。

さらに、コードでjQueryセレクター( )を使用する場合は、jQueryも含めます。$

于 2013-03-06T07:52:59.107 に答える
2

githubからダウンロードしたプロジェクトの1つで同じ問題が発生しました。次の場所から最新のスクリプトを入手しましたが、現在は正常に動作しています。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.1/jquery.min.js"></script>
<script src="http://documentcloud.github.com/underscore/underscore-min.js"></script>
<script src="http://documentcloud.github.io/backbone/backbone-min.js"></script>

乾杯

于 2013-06-02T11:55:45.813 に答える
1

1)this.listenToは最近のバージョンのバックボーンに追加されているため、使用しているバックボーンライブラリが古くなっている可能性があります。最新バージョンのBackboneを試してください。2)this。$ el:jQueryを使用する必要があります。jQueryを追加した後にこのエラーが再度発生する場合は、この行の上にconsole.log(this。$ el)を配置します。要素を取得している場合は、それ以外の場合は[]またはundefinedを出力します。

公式ドキュメントによると、Backboneの唯一のハード依存関係はUnderscoreまたはLo-Dashのいずれかです。ただし、jsファイルのダウンロード順序を設定するには、RequireJSを使用する必要があります。

于 2013-03-06T19:54:46.907 に答える