1

長年の Rails 開発者、バックボーン初心者。

私のレールモデルでは、プロジェクトには多くのタスクがあり、タスクはプロジェクトに属しています..標準的なもの。

コレクションでプロジェクトのタスク json を取得しようとしています。

ExampleApp.Collections.Tasks = Backbone.Collection.extend({
  url: '/projects/<dynamic_id>/tasks',
  model: ExampleApp.Models.Task
});

これまでに見たすべての例では、URL を /tasks として参照しています。プロジェクト ID をコレクションに渡して、そのプロジェクトのタスクを取得したいと考えています。

Backbone Relationalを確認しましたが、最適なソリューションが何であるかはわかりません。

乾杯

4

2 に答える 2

2

自分で関係をハッキングするのではなく、Backbone-Relational を使用することを強くお勧めします。個人的な経験から Backbone-Relational を使用する理由:

  • 前方および後方の関係を作成するため、プロジェクトに関連するすべてのタスク、またはタスクが属するプロジェクトを取得できます
  • シリアル化が簡単で、自動逆シリアル化。つまり、JSON を指定すると、すべてのモデルとそれらの関係が構築されます。とても便利な。
  • モデルは独立して定義されたままになり、追加の作業なしで標準のバックボーンを使用して保存/取得できます。
  • MarionetteioBind/ioSyncなどのさまざまな Backbone 拡張機能とうまく連携することもできます。
于 2012-09-15T00:08:44.720 に答える
1

1 つの方法は、urlを関数として定義し、fetch() の前に project_id を設定することです。

ExampleApp.Collections.Tasks = Backbone.Collection.extend({
    model: ExampleApp.Models.Task

    url: function() {
        return 'projects/'+this.project_id+'/tasks';
    },

    setProjectId(project_id) {
        this.project_id = project_id;
        this.fetch();
    }
});
于 2012-09-14T22:45:03.623 に答える