バックボーンのドライ検索結果モデルとコレクションを作成しようとしています。これにより、アプリで何を検索しても、同じモデル/コレクションを使用し、場合によっては異なるビューを呼び出すことがあります。
私のモデルとコントローラーはとてもシンプルです
Myapp.Models.Search = Backbone.Model.extend(); Myapp.Collections.Search = Backbone.Collection.extend({ モデル:Myapp.Models.Search });
次に、URL値を入力して、ビューに正しいリクエストとパラメーターを取得します
Myapp.Views.SearchResults = Backbone.View.extend({ el:'div#results'、 初期化:function(){ Myapp.results = new Backbone.Collection.Search; Myapp.results.url = this.model.search_type +'/' + this.model.data; //これは検索クエリを保持します Myapp.results.fetch({ 成功:function(){alert('got result')}、 エラー:function(){alert('それは良くありません!');} }); }
'fetch'がなければ、すべて問題ありませんが、fetchを含めると、fetchが実行され、結果が返されますが、エラーが発生します。
Uncaught TypeError:undefinedはbackbone.js:23の関数ではありません
応答を確認しましたが、有効なJSONです。Myapp.resultsをコンソールに出力すると、コレクションが表示されますが、まだ空です。成功ではなくエラーも引き起こされていません。
---------------- update ------------------------コメントに従って、私は分割しました23行目で、この行にエラーが返されていることがわかりました
a = new this.model(a、b)、
この行の機能を理解している場合、この問題は、応答コレクションに返されるモデルが1つしかないことが原因である可能性がありますか?問題が発生しないことを願っています。1つ以下のモデルを含むコレクションを作成できるはずです。
- - - - - - - アップデート - - - - - - - - - - - - -
そのため、コレクション内のへの参照を削除しましたmodel
が、エラーは発生しません。したがって、いくつかの点で、これは解決されますが、解決されるべきではありません。これまで、コレクションに関連付けられたモデルを常に定義してきた理由はありますか?