Vue.js импортирует изображения

Итак, я создаю приложение с панелью управления, и я хочу иметь возможность динамически изменять несколько изображений внутри приложения, и моя проблема в том, что это просто не сработает.

Это тот div, который я пытаюсь изменить

<div class = "bg-image bg-parallax overlay" :style = "`background-image:url(${bg1url})`"></div>

это часть сценария файла Home.vue

<script>
import axios from 'axios';
export default {
    name: 'Home', //  this is the name of the component
    data () {
        return{
            page_data: {},
            bg1url: null,
        };
    },
    created() {
        axios.get("http://localhost:5001/api/v1/pages")
            .then((result) => {this.page_data = result.data.page_data});
        this.bg1url = require('@/assets/img/' + this.page_data.background1);
        alert(page_data.background1);
    },
};
</script>

Я пробовал большинство предложений по переполнению стека, но, похоже, ничего не работает. Я использую конфигурации веб-пакетов по умолчанию и сгенерированную структуру

Примечание: части с аксиомами, извлекаемыми из бэкэнда, работают правильно. Проблема только в добавлении изображения в стиль.

Разве вы не должны установить bg1url для URL-адреса, а не для самого объекта Image?

Chris G 07.06.2018 15:50

Разве вам не нужно выполнять последние два оператора внутри Promise?

Jay Harris 07.06.2018 15:51

Я пробовал, но по-прежнему отображается как null

Nick 08.06.2018 12:08
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
3
359
1

Ответы 1

Я думаю, это может быть из-за того, что вы устанавливаете значение для bg1url вне обещания (функция обратного вызова axios), и поэтому это синхронизирует код, а не асинхронно

поэтому, пожалуйста, попробуйте обновить, используйте это вместо

created() {
    axios.get("http://localhost:5001/api/v1/pages").then(result => {
        this.page_data = result.data.page_data
        this.bg1url = require('@/assets/img/' + this.page_data.background1);
    });
},

он по-прежнему регистрируется как ноль

Nick 08.06.2018 10:08

Вы пробовали без запроса, например: this.bg1url = '@/assets/img/' + this.page_data.background1

Helio Soares Junior 08.06.2018 20:01

он просто не находит его. После того, как я поместил это так, в браузере в URL-адресе я вижу это, но изображение не найдено. то же самое произойдет, если я сделаю ../, что будет относительным путем к этому

Nick 11.06.2018 10:10

Другие вопросы по теме