如何在把手中输出对象的值

时间:2016-07-24 15:14:47

标签: ember.js handlebars.js

我是超级绿色的灰烬和把手,我撞到了一堵砖墙,所以有点帮助。

我有一些json:

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

并且在把手中我试图得到href这样的

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

但它什么也没有返回。 author是一个数组,但我不知道如何在把手中访问它,以及我在这里阅读的内容,我感觉不适合上下文。

2 个答案:

答案 0 :(得分:2)

author是一个数组,因此您无法像访问它那样访问它。试试下面的片段。

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

如果您想在author数组中始终显示第一个元素,则不需要each阻止。

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

答案 1 :(得分: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;
    }, []);
  })
});