2016-04-03 6 views
0

私はユーザーのコレクションを持っています。各ユーザはcardsの配列を持ち、ユーザが選択したカードのidで構成されています。リンク2/idsを含むリソースのコレクションを、別のリソースにAngular 2サービスで提供する方法はありますか?

user.cards = [10, 12, 24, 31]

私は、ほとんどのユーザーによって選択された10枚のカードを持っていると思います。

私はとcard.service.jsですが、これはDAOであると思います。 card.service.jsはこのようになります(簡略化のためにプレーンPromisesを使用)。

(function(app) { 
    app.CardService = ng.core.Injectable({}).Class({ 
     constructor: function() {}, 
     getCards: function() { 
      return Promise.resolve(app.cards) 
     }, 
     getCard: function(cardId) { 
      return Promise.resolve(app.cards.get(cardId)); 
     }, 
     getTop10Cards: function() { 
      // How would I go about doing this method? 
     } 
    }) 
})(window.app || (window.app = {})); 

論理的には、私は、すべてのユーザーのリストを必要とする彼らのcardIdsを収集し、最も使用されるカードを見つけるために、それらを集約します。しかし、CardServiceUserService(注射として)を使用する必要がありますか?または別のDAOでDAOを使用して間違った方法でそれについて行くのですか?各モデル間のリンクを含む別のコレクション(ジョイントテーブルなど)を用意する必要がありますか?

答えて

0

このクライアントサイドの問題に対処するために、私はバックエンドリソースの外観を調べました。私は "How to handle many-to-many relationships in a RESTful API?"と似たようなものを思いついた。

APIのエンドポイントは次のようになります。/users/cards/cards/{cardId}/votes/cards/{cardId}/votesには、ユーザーと選択したカードとの関係を定義するリソースが含まれています。

vote.service.jscard.service.jsのコードに、私は実際にvote.service.jsを注入しています。私がGETのカードを使用している場合は、そのサブセットvotesで構成します。詳細は、 "angular js model relationships"を参照してください。

これは、この質問に遭遇するすべての人に役立つことを願っています。

乾杯!

関連する問題