2016-07-24 4 views
0

Я супер зеленый с ember и рулями, и я ударил кирпичную стену, так что немного помощи приветствуется.Как вывести значение объекта Объект в руле

У меня есть JSON:

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

и рули Я пытаюсь получить href как этот

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

но ничего не возвращает. author - массив, но я не знаю, как получить к нему доступ в рулях, и то, что я читаю здесь на SO, я не чувствую себя в контексте.

ответ

2

автор - массив, поэтому вы не можете его получить, как и вы. попробуйте приведенный ниже фрагмент.

{{#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}} 
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 без примеров. Я мог бы написать два примера. Один для обучения и один для более новых синтаксических стандартов. Как вы думаете? – Sukima

+0

Я пошел, чтобы отредактировать это, и понял, что альтернатива - еще одна для цикла с еще одной временной переменной. Это кажется хуже. В моем ежедневном кодировании я считаю, что деструктурирование легче понять тогда для .... Отправляясь, чтобы оставить это, а другой ответ может показать, как выглядит Эмбер без синтаксиса ES2015, если кто-то захочет опубликовать его. – Sukima

Смежные вопросы