#javascript #arrays #json #laravel #vue.js
Вопрос:
Это раскрывающийся компонент, используемый для предоставления списка всех сеток на всех страницах. На этих страницах есть несколько страниц и сеток.
<v-dropdown
:items="pageGrids"
:item-text="gridNamesAndPages"
return-object
/>
Имена и страницы сетки находятся в разделе методы:
gridNamesAndPages: item => item.name ' • (Page: ' item.page_name.name ')',
Это метод, используемый для назначения пустых сводных сеток массива всем сеткам для этого проекта:
getAllPageGrids() {
apiClientGet(
routes["pages.getAllPageGrids"],
null,
response => {
this.pageGrids.push(response.data);
}
);
},
Функция в контроллере:
public function getAllPageGrids()
{
return Auth::user()->client->grids()->get();
}
Сводные таблицы представлены в этом формате. Там может быть несколько сеток, поэтому, хотя это показывает только 3, их может быть 100:
[
{
"id": 3,
"name": "AS",
"grid_cols": [
{
"id": 16,
"grid_id": 3,
"order": 1,
"header": "Col 1",
}
],
"page_name": {
"name": "Page 1"
}
},
{
"id": 4,
"name": "SF",
"grid_cols": [
{
"id": 21,
"grid_id": 4,
"header": "Name",
},
{
"id": 22,
"grid_id": 4,
"header": "Reference",
}
],
"page_name": {
"name": "Page 1"
}
},
{
"id": 5,
"name": "WE",
"grid_cols": [
{
"id": 24,
"grid_id": 5,
"header": "Name",
}
],
"page_name": {
"name": "Page 2"
}
}
]
Однако я продолжаю получать эту ошибку:
Я не вижу ничего плохого в том, как структурирован код. Кто-нибудь знает, действительно ли я написал это неправильно?
(По запросу я также включил пользовательский компонент v-выпадающего списка)
<template>
<v-select
:class="`text-field-${color || 'white'}`"
outlined dense
v-on="$listeners" v-bind="$attrs"
>
<slot>
<!-- -->
</slot>
</v-select>
</template>
<script>
export default {
props: {
color: {
type: String|null,
default: null
}
},
};
</script>
Комментарии:
1. Я бы рекомендовал пометить это как
vue
-то так, чтобы использовать версию, специфичную для вашей2. что это за v-выпадающий компонент? можете ли вы поделиться своим кодом / документами?
3. Это пользовательский компонент, основанный на v-select, я добавил код внизу
4.
gridNamesAndPages
ожидает, что будет передан один аргумент (item
), но вы не делаете этого в своем шаблоне.5. Это имеет смысл, хотя, поскольку :items ожидает массив из нескольких объектов, то разве :item-text не ожидает обработки каждого объекта (элемента) в этом массиве, а не только одного?