2017-07-30 10 views
1

私はAngular、Jsなどで新しく、ネストされたデータの仕組みを理解する上で問題があります。たとえば:角度2で入れ子になったjsonデータ - フィルタリングの仕方は?

  • カテゴリ
  • のサブカテゴリ
  • 投稿
  • コメント

それは上記のように4つの異なるファイルを持っている方が良いでしょう、または1:

私は4つのJSONファイルを持っていますこのように:

{ 
"id_category":"1", 
"name":"business", 
"subcategories":{ 
    "id":"1", 
    "name":"ecommerse", 
    "posts": { 
     "id": 1, 
     "title": "New post" 
     "comments": { 
      "id": 1, 
      "text": "text text text" 
    } 
    } 
} 

もちろん例ですが、この例では、このコメントが関連する投稿、サブカテゴリとカテゴリについての情報を得るために、Id = 1でコメントを探す必要があります。

今私は、4つの異なるファイルと、jsonファイルからデータを取得するサービスを提供しています。私は特定のコメントをIDで取得できます:

getComment(Id: number) { 
    return this.comments.find(
     (comment) => 
     comment.id === Id 
    ); 
} 

大丈夫です。しかし、このコメントの投稿、サブカテゴリ、メインカテゴリに関する情報を取得したいのですか?私は何をすべきか?

+0

あなたは、データベースがこれを処理し、ポスト、カテゴリへの鍵を持っている方法と同じようにこの操作を行うことができ、およびサブカテゴリを保存コメントを表すjsonオブジェクトで – 0mpurdy

+0

Thxですが、これを行うには良い方法かどうかはわかりません:/。たぶん私は4つのjsonファイルは必要ありませんが、1つだけです。おそらくES6(地図、フィルター)が助けになるかもしれませんが、意味があるかどうかわかりません。 – Przemo

+0

データをどのように配信しているか、どのように検索/表示しているか、 *道。結合されたアプローチを望むなら、4つのオブジェクト(それぞれに1つずつ)を含む単一のJSONファイルを持つことができます。おそらくここに他の誰かが良い指導を持っていますが – 0mpurdy

答えて

0

アプリケーションのニーズに応じて異なります。この構造により

{ 
"id_category":"1", 
"name":"business", 
"subcategories":{ 
    "id":"1", 
    "name":"ecommerse", 
    "posts": { 
     "id": 1, 
     "title": "New post" 
     "comments": { 
      "id": 1, 
      "text": "text text text" 
    } 
    } 
} 

あなたはカテゴリーを反復処理し、リストを表示し、ユーザーが1つのcategoryを選択することができ、かつvar currentCategoryにそれを割り当てることができます。

currentCategory.subcategoriesを繰り返して、subcategoryを選択してvar currentSubCategoryに割り当てることができます。ドリルダウンを続けてcurrentSubCategory.postsにし、ユーザにpostを選択させ、それをvar currentPostに割り当て、それを反復してcurrentPost.commentsと表示します。

ユーザーが表示専用のデータをドリルダウンできるようにするためにデータベースから取得する場合、このようなものが機能します。

あなたはJSONファイルにデータを保持している場合は、あなたが何かをより実質的な構築している場合は、私はJSONサーバーhttps://github.com/typicode/json-server

のようなものを見てしまうと、あなたは、バックエンドのデータベースを持っているデータベースとドンを利用しますJSONでその機能を再現しようとすると、JSONをデータのトランスポートとして使用しますが、フロントエンドコード内のテーブルや複雑なデータ構造全体を複製しないで、必要なときに必要なものを取り出します。はるかに安定してスケーラブルなアプリケーションを作成し、小さな管理可能なチャンクでデータを取得して更新することも容易になります。

JSONを使用して、データのバックエンドをあざけるために、JSON-サーバー考える

https://www.npmjs.com/package/json-server

+0

スティーブンありがとう。私はmockファイルが必要なので、私はjsonファイルを使用しています(私はいくつかのアプリケーションを構築することで角度2を学習しようとしており、次のステップはMongoDb/Firebaseなどを使用しています)。とにかく、ありがとう、私はあなたが上記のようにそれをやろうとします:) – Przemo

+0

バックエンドを模擬するために、私はhttps://www.npmjs.com/package/json-server –

関連する問題