1

私はいくつかの Backbone.js チュートリアルに従ってきましたが、モデルを含むコレクションもある場合、モデル内でいつ「url」を使用するかについて少し混乱しています。たとえば、サーバーと同期するために、次のようなコードがたくさんあります。

var PostModel = Backbone.Model.extend({});
var PostsModel = Bacbone.Collection.extend({
  model: PostModel,
  url: "/posts"
});

ただし、次のように、モデルに「url」プロパティもある場合もあります。

var PostModel = Backbone.Model.extend({
  url: "/posts"
});
var PostsModel = Bacbone.Collection.extend({
  model: PostModel,
  url: "/posts"
});

モデルが属するコレクションを通じてのみモデルとやり取りする最初の方法は理解できたと思いますが、モデルとそのコレクションの両方の URL がいつ必要になるかはわかりません。

4

1 に答える 1

0

どのコレクションにも属さないモデルが必要な場合があります。

たとえば、login/ sign in.

var LoginModel = Backbone.Model.extend({
    url: "/login"
});

このようにして、(ログインフォームをサーバーに投稿する) および検証を含む、login他のモデルと同じように、ビューとモデルを操作できます。Backbonesave()

ただし、loginコレクションがないため、それをモデル化しても意味がありません。

たぶん、あなたが見ているコードはその中間のものです。アプリケーションの一部の場所ではコレクションを介してモデルにアクセスし、他の場所ではコレクションなしでモデルにアクセスします。

良いデザインかどうかは別の話ですが、そうしない技術的な理由はありません。

edit お気づきのように、urlRoot別のオプションとして using があります。これは、デフォルトで、url属性が を使用urlRootして相対 URL を構築するメソッドであるためです。ただし、文字列値を指定して、モデルの URL を直接指定することはできます。

于 2012-11-02T11:03:03.437 に答える