Доступ к проиндексированному элементу из массива в 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}}