私は CoffeeScript で遊んでいて、本当にイライラするエラーに遭遇しています。fetch()
コレクションがあります(返されるJSONを微調整する必要があるため、ajax呼び出しからデータを入力しています-そうではありません)
コレクションはこちら
$ ->
class AppName.Members extends Backbone.Collection
model: AppName.Member
そして、モデル
$ ->
class AppName.Member extends Backbone.Model
シンプルですね。最終的には、フィラー以外のデータを取得するためにこれらを構築しますが、今のところはこのようになっています。そして今、私の見解のために
$ ->
class AppName.TitleView extends Backbone.View
template: JST['templates/title']
initialize: ->
@bind(@collection, 'add', @addOne);
@bind(@collection, 'reset', @addAll);
@bind(@collection, 'all', @render);
$.ajax
dataType: 'json'
url: '/housemembers'
success: (data, textStatus, jqXHR) ->
for member in data.results[0].members
model =
state : member.state
first_name : member.first_name
middle_name : member.middle_name
last_name : member.last_name
next_election : member.next_election
party : member.party
AppName.Members.add model
@
私を殺しているのは、次のようにAppName.Members.add model
失敗することです:
Uncaught TypeError: Object function Members() {
Members.__super__.constructor.apply(this, arguments);
} has no method 'add'
しかし、Chrome の要素を期待すると、明らかにコンストラクターadd
にメソッドがありますMembers()
!!!
実際、ウォッチにドロップするとAppName.Members.__super__.add
、関数コールバックが返されます!
それで、ここで何が起こっているのですか?AppName.Members
本格的なバックボーン コレクションではないのはなぜですか?