Задать вопрос
  • Как во Vue.js добавить данные в существующий массив?

    0xD34F
    @0xD34F Куратор тега Vue.js
    А откуда вы взяли, что у вас там массив? Вы сообщение об ошибке вообще читали? Если "this.articles.push is not a function", значит this.articles - это не массив, у массивов метод push есть. Изначально да - массив, но когда вы в created вызываете getArticles, производится перезапись свойства. Неплохо было бы разобраться, что на самом деле возвращает запрос на получение статей - уж не объект ли?

    UPD. Вынесено из комментариев:

    Да, не массив, а объект. Я просто и так и так пробовал. Смог добавить таким способом.
    this.articles = Object.assign(this.articles, response.data.payload);

    Но значение добавилось не так как нужно.

    Присваивание бессмысленное - Object.assign модифицирует первый аргумент, а не создаёт новый объект.

    Кроме того, vue не отслеживает установку значений по индексу.

    Сам способ добавления данных в массив сомнительный - что если имена свойств пришедшего объекта не образуют корректного набора индексов? Типа, начинаются не с нуля, есть пропуски... А если какие-то из имён свойств вообще не могут быть использованы в качестве индекса массива? - само свойство создано будет, но v-for (как и методы - forEach, map, ...) не будет его обрабатывать. Доставайте из объекта массив значений и уже его элементы добавляйте в articles:

    this.articles.push(...Object.values(response.data.payload));

    Это если именно "добавить в существующий". Но, поскольку изначально он пустой, в getArticles можно просто заменить один массив другим:

    this.articles = Object.values(response.data.payload);

    А вообще - какого чёрта? Ждёте массив, а приходит объект... Или исправьте бекенд, чтобы приходил массив, или не ждите массива - замените дефолтное значение articles на пустой объект, а в getArticles по получении данных просто выполняйте присваивание: this.articles = response.data.payload. А там, где пытаетесь concat выполнить, создавайте новый объект, в который будут копироваться свойства существующего и результат запроса:

    this.articles = { ...this.articles, ...response.data.payload };
    // или
    this.articles = Object.assign({}, this.articles, response.data.payload);
    Ответ написан
    3 комментария
  • Как вывести Логи в отельный файл в symfony 3?

    @sidni
    Php Developer
    типа создать свой хендлер и канал
    channels: ['my_handler']
    my_handler:
                type: stream
                path: "%kernel.logs_dir%/%kernel.environment%_my_handler.log"
                channels: ["my_handler"]
    Ответ написан
    1 комментарий
  • Как отсортировать массив в заданном порядке?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега PHP
    Ответ написан
    Комментировать
  • Удалить элемент из массива c помощью Jquery?

    @Gregpopov
    Full stack web developer
    var arr=[1,2,3,4,5];
    var value=4;

    arr.splice( $.inArray(value, arr), 1 );

    теперь в arr у нас будет 1,2,3,5

    Копипаст отсюда: php-mysql-life.blogspot.com/2012/06/jquery.html?m=1

    Вам нужно гуглить научиться, а потом разработкой заниматься.
    Ответ написан
    1 комментарий