0

AngularJS SPA のリソースの配列からリソース キーを取得する必要があります。次のようなリソースを使用します。

var answers = $resource('/api/answers/:id', {id: '@id'})

nstore から JSON をロードする node.js バックエンドに接続します。「API」は、nStore dbからデータを取得するだけです。次のres.end(result)ように結果を送信するだけです。

{
  "1moabd0c": {
    "q1": "asdf",
    "q2": "3",
    "q3": [
      "false",
      "true"
    ],
    "q4": "a@a.com"
  },
  "2loe5p5p": {
    "q1": "edsds",
    "q2": "3",
    "q3": [
      "false",
      "true"
    ],
    "q4": "sdfwe@mai.com"
  }
}

パラメータを指定すると (最初のオブジェクトから "/api/answers/1moabd0c" を呼び出すなど)、次のように 1 つの結果のみが得られます。

{
  "1moabd0c": {
    "q1": "asdf",
    "q2": "3",
    "q3": [
      "false",
      "true"
    ],
    "q4": "a@a.com"
  }
}

では、そのオブジェクト キーを抽出するにはどうすればよいでしょうか。

ビューでリソースを使用します。

tbody
      tr(ng-repeat='answer in answers')
        td {{answer.q4}}
        td
          a(href='#/answers/{{answer.key}}') Open

しかし、うまくいきません。{{asnwer.key}}、{{answer.id}} を使用してみました...そのハッシュを取得するために他に何が使用できますか?

編集:コントローラーでこれを行うと:

  $scope.answers = Answers.query()
  window.x = $scope.answers;

そして、ウィンドウで x をログアウトすると、配列が取得されますが、その配列には$$hashKey小道具があります。私の推測では、これらは angulars 独自のハッシュ キーです。元のものが必要です。配列は次のようになります (ここにうまく収まるように少し編集しました)

[
    {
        "$$hashKey": "005",
        "q1": "asdf",
        "q2": "3",
        "q3": [
            "false",
            "true"
        ],
        "q4": "a@a.com",
        __proto__: g /* Which seems to be the angular resource object literal, with $delete, $get and stuff */,
    },
    {
        "$$hashKey": "009",
        "q1": "Ovojejedanodgovor",
        "q2": "4",
        "q3": [
            "false",
            "true"
        ],
        "q4": "babaa@a.com",
        __proto__: g /* again this obj */
    }
]
4

0 に答える 0