2016-07-24 7 views
0

私はエバーとハンドルバーを持つスーパーグリーンです。レンガの壁に当たっていますので少し助けてください。ハンドルバーのオブジェクトオブジェクトの値を出力する方法

は、私はいくつかのJSON持っている:

[{"_links":{ 
    "author":[ 
     { 
      "embeddable":true, 
      "href":"http:\/\/example.com\/users\/1" 
     } 
    ],}] 

をハンドルバーに私はこの

{{#each posts as |post|}} 
    {{post._links.author.href}} 
{{/each}} 

ようhrefを取得しようとしていますが、それは何も返しません。 authorは配列ですが、ハンドルバーでどのようにそれにアクセスするのか分かりません。ここで私が読んでいるところでは、文脈に合った感じがしません。

答えて

2

著者はあなたのようにアクセスできないように配列です。以下のスニペットを試してみてください。

{{#each posts as |post|}} 
    {{#each post._links.author as |author|}} 
     {{author.href}} 
    {{/each}} 
{{/each}} 

あなたは、あなたがeachブロックを必要としないauthor配列で、常に最初の要素を表示したい場合。

{{#each posts as |post|}} 
    {{post._links.author.[0].href}}    
{{/each}} 
0

このデータ構造は、あなたが頻繁にあなたが計算されたプロパティを検討することもでき飛び込む何かの場合:

import Ember form 'ember'; 
const { Controller, get, computed, computed: { alias } } = Ember; 
export default Controller.extend({ 
    posts: alias('model'); 
    authorHrefs: computed('posts._links.[]', function() { 
    return get(this, 'posts._links').reduce((memo, links) => { 
     memo.push(...get(links, 'author').mapBy('href')); 
     return memo; 
    }, []); 
    }) 
}); 
+0

ここで構造化代入すると、ポイントを雲のように思えます。クールですが、スタックオーバーフローに関する情報提供のために、私はそれが不都合なことだと思います。おそらく – sheriffderek

+0

。しかし、他の人たちは、例を見ないで高度なES2015をどのように学ぶでしょうか?私は2つの例を書くことができました。 1つは教授用であり、もう1つはより新しい構文基準用です。どう思いますか? – Sukima

+0

私はこれを編集して、別の一時変数を持つループのもう1つの代替案であることに気付きました。これは悪いようです。私の毎日のコーディングでは、私は、破壊を理解することがより容易であることがわかります。 ES2015の構文を使わずにEmberがどのように表示されるかは、誰かが投稿したいと思った場合に表示されます。 – Sukima

関連する問題