Доступ к проиндексированному элементу из массива в HTMLBars

У меня есть пользовательский API, который не отформатирован для удобного использования с Ember Data. У меня проблемы с получением значений вложенных массивов из моего API.

ответ API:

{
  "data": [
    {
      "id": 6,
      "name": "Company Name",
      "links": [
        {
          "rel": "self",
          "uri": "/address-book/company-name"
        }
      ],
      "details": {
        "data": {
          "website_url": "http://website.com/",
          "development_website_url": "http://dev_website.com",
          "primary_phone": 9543333333,
          "primary_email": "email@emai.email"
        }
      }
    },
    {
      "id": 3,
      "name": "Company Name",
      "links": [
        {
          "rel": "self",
          "uri": "/address-book/company-name"
        }
      ],
      "details": {
        "data": {
          "website_url": "http://website.com/",
          "development_website_url": "http://dev_website.com",
          "primary_phone": 9543333333,
          "primary_email": "email@emai.email"
        }
      }
    }
  ]
}

Я пытаюсь получить ссылки отображаются здесь мои рули:

{{#each m in model}}
    <tr>
        <td>
            <a href="{{m.links.uri}}">{{m.name}}</a>
        </td>
    </tr>
{{/each}}

Теперь ссылка URI просто пуста. Если я изменю это просто {{m.links}} этот возврат {объект объекта}. Я также пытался {{m.links[0].uri}} просто чтобы посмотреть, сработает ли это, но ничего хорошего.

Вот мой роутер и адаптер для него.

export default Ember.Route.extend({
    model: function(){
        var adapter = AddressBookAdapter.create();
        var companies =  adapter.findAll();
        return companies;

    }
});

адаптер:

export default Ember.Object.extend({
    findAll: function(){
        return ajax('http://localhost:8000/api/v1/address-book/companies?includes=details')
            .then(function(response){
                return response.data;
            });
    }
});

Как я могу получить значение этих свойств? Я чувствую, что это действительно легко, и я просто не понимаю.

1 ответ

Решение

Чтобы получить доступ к элементу по определенному индексу массива в шаблоне, вы должны использовать синтаксис {{array.[index]}}

Согласно вашему ответу API, это должно работать:

{{#each m in model}}
    <tr>
        <td>
            <a href="{{m.links.[0].uri}}">{{m.name}}</a>
        </td>
    </tr>
{{/each}}
Другие вопросы по тегам