4

次のような、ユーザーの 1 つとアカウントの 1 つの 2 つの json オブジェクトがあるとします。

users = [
  {id: 1, account_id: 1},
  {id: 2, account_id: 2},
  {id: 3, account_id: 1}
]

accounts = [
  {id: 1, name: "administrator"},
  {id: 2, name: "moderator"}
]

したがって、すべての users 配列をループして、それぞれのアカウント情報を取得する必要があります。マークアップでそれらの関係にアクセスするためにそれらの関係を管理する最良の方法はどれですか? 次の解決策が見つかりました。

アプローチ 1: 1 つの要素のみを繰り返して、要素をフィルター処理し、マークアップのその部分で使用できるようにするだけです。

<div ng-repeat="user in users">
  <div ng-repeat="account in getAccountFromId(user.account_id)">
    <!-- now account is available in all this scope to access user.account.name -->
  </div>
</div>

アプローチ 2: バックエンドから情報が返される方法を変更し、各ユーザーの json がアカウント情報と共に返されるようにします。しかし、それは各 json オブジェクトで多くの情報を繰り返します。また、これは角度のためにバックエンドを変更することを意味します。

<div ng-repeat="user in users">
  <!-- with this approach I can access here user.account.name -->
</div>

それらのアプローチが正しいかどうか誰かに教えてもらえますか? angularでオブジェクトの関係を管理するより良い方法はありますか?

どうもありがとう。

4

2 に答える 2

0

私は同じ問題に直面し、データ マッピングを実行するのはフロントエンドの仕事ではないと判断しました。
したがって、次のように account_id に戻る代わりに:

users = [
  {id: 1, account_id: 1},
  {id: 2, account_id: 2},
  {id: 3, account_id: 1}
]

「account_name」(または私にとって同等のもの)でモデルを拡張した
ため、提案された出力

users = [
  {id: 1, account_id: 1, account_name: "administrator"},
  {id: 2, account_id: 2, account_name: "moderator"},
  {id: 3, account_id: 1, account_name: "administrator"}
]

少し冗長ですが、UI での作業が楽になり、サーバーでのコストもそれほどかかりません。

于 2014-07-04T21:25:05.043 に答える