2

私はBackboneで遊んでいますが、バックボーンを使用してphonegapアプリを作成できるように、Backboneがどのように機能するかを学習しようとしています。バージョン0.9.9ではすべて正常に機能し、0.9.10にアップグレードすると次のようになります。

TypeError: collection[method] is not a function

   collection[method](resp, options);

backbone-0.9.10.js (line 821)

問題は次のセクションと関係があるようです。

var params = _.extend({
    'method': 'GET',
    'url': this.url,
    'cache': true,
    'dataType': 'json',
    'processData': true
}, options);

console.log(params);

return $.ajax(params);

何が悪いのかわかりません。

0.9.9の作業バージョン

http://92.245.6.92/backbone.peoples/index.html

0.9.10でアップグレードされ、機能しないバージョン

http://92.245.6.92/backbone.peoples/index2.html

私のコードに重大な障害があるのか​​、それとも何が起こったのかを教えてください。0.9.10は1.0のリリース候補であるため、これは新しいバージョンでは機能しないと思います。

ありがとう。

4

1 に答える 1

3

フェッチsuccessコールバックシグネチャがからに変更され0.9.9ました0.9.10。コールバック署名は現在

function(collection, resp, options) { ...

アプリでオーバーライドし、( )Collection.syncを使用してコールバックを実行します。app.js:35

options.success = function(data, textStatus, jqXHR) {
    model.parse(data);
    if(success)
        success(data, textStatus, jqXHR);
};

resetこれにより、Backboneがオブジェクトのメソッドを呼び出そうとする状況が発生します。このメソッドdataはバニラJavaScript配列であり、そのようなメソッドはありません。新しいAPIに準拠するには、次のコマンドで呼び出す必要があります。

var collection = this;
options.success = function(data, textStatus, jqXHR) {
    model.parse(data);
    if(success)
        success(collection , data, options);
};
于 2013-01-28T13:19:10.953 に答える