0

AngularJS を使用して、Web サイトの「ディスカッション」モジュールを作成しています。

私は実際にはクライアント<->サーバー通信用に2種類のリソースを持っています:

  1. ディスカッション $resource (「タイトル」、「ステータス」などのディスカッション関連の情報を取得するために使用されます。ディスカッションには、メッセージの配列も含まれます。
  2. メッセージ $resource

問題 : ページをロードするとき、ディスカッション タイトルなどを取得するためにDiscussion.query()を実行します。クライアント <-> サーバー リクエストを節約するために、ディスカッションのメッセージも返されます (ディスカッション情報に加えて) )。それは素晴らしいことですが、メッセージを編集または削除したい場合はどうすればよいですか? " Discussion " モデル オブジェクトを使用してメッセージを取得したため、メッセージは $resourceメッセージと見なされず、 $updateまたは *$deleteできません。

実際には、実際のメッセージ$resourcesを取得するために「 Messages.get() 」を実行することもできますが、サーバーへの新しいリクエスト (レイテンシ、SQL クエリなど) が必要になります。

現在、それを達成するための2つの回避策を見つけました:

  1. Message $resource静的メソッド ( Message.delete(...)など) の使用
  2. 「生の」$httpリクエスト

できるだけ単純なコードが必要なので、これら 2 つのソリューションでは満足できません。

--

Angular に「ねえ、このオブジェクトは実際には Message $resource です!」と伝えることは可能ですか? 別のリソースを使用してメッセージを取得するときは? 変な説明でごめんなさい。コードが役立つとは思いませんが、必要なのか聞いてください。

4

1 に答える 1

1

これは、この質問の複製のように聞こえます: ngResource resolving nested resources

しかし、要約すると、 を使用してやりたいことを行うための優れた方法は実際にはありません$resource。その投稿と私が提案した可能な解決策を確認してください。

Restangularライブラリを調べて、それがニーズに合っているかどうかを確認することもできます。

于 2013-10-18T19:41:34.183 に答える