2

urlRootモデルのいくつかの異なるクラスが異なる を使用するため、実行時にモデルにを渡す必要がありますurlRoot

これが私のモデルです:

App.Models.Table = Backbone.Model.extend({ });

そして、これを使用する場所は次のとおりです。

var m = new App.Models.Table();
var t = new App.Collections.Tables(m, { url: this.url });
var tables = new App.Views.Tables({ collection: t, template: this.template });

this.urlそれを呼び出すイベントに基づいて、正しい値を返します。モデルをコレクションに間違って渡していますか? ここに私のコレクションがあります:

App.Collections.Tables = Backbone.Collection.extend({
    url: this.url,
    model: App.Models.Table,
    initialize: function(models, options) {
        if (options && options.url) {
            this.url = options.url;
        }
        this.fetch({
              success: function(data, options) {

            }
        });
    }
});

this.urlモデルに渡すにはどうすればよいですか?

4

2 に答える 2

4

this.urlが例の正しい URL であると仮定して、次の手順を実行します。

table = new App.Models.Table({
    id: id
});
table.urlRoot = this.url;
于 2013-01-11T21:01:06.717 に答える
2

URLは、文字列定数または文字列を返す関数のいずれかである必要があります。あなたのコレクションでは、次のようなことをしたいと思うでしょう:

App.Collections.Tables = Backbone.Collection.extend({
    url: function() { return "http://my.url/" },
    // or, url: "http://my.url"
});

匿名関数を使用すると、リクエストが送信される前に一部のデータを処理する(つまり、文字列を変更する可能性があります)ことができます。

私はあなたの質問を正しく理解していますか?

于 2013-01-11T21:00:13.057 に答える