Vue.js img src объединяет переменную и текст


108

Я хочу объединить переменную Vue.js с URL-адресом изображения.

Что я вычислил:

imgPreUrl : function() {
    if (androidBuild) return "android_asset/www/";
    else return "";
}

Если я построю для Android:

<img src="/android_asset/www/img/logo.png">

Еще

<img src="img/logo.png">

Как я могу связать вычисленную переменную с URL-адресом?

Я попробовал:

<img src="{{imgPreUrl}}img/logo.png">

Ответы:


208

В атрибутах нельзя использовать завитушки (теги усов). Для объединения данных используйте следующее:

<img v-bind:src="imgPreUrl + 'img/logo.png'">

Или краткая версия:

<img :src="imgPreUrl + 'img/logo.png'">

Подробнее о динамических атрибутах читайте в документации Vue .


«Но Vue.js на самом деле поддерживает всю мощь выражений JavaScript во всех привязках данных»: vuejs.org/v2/guide/syntax.html#Using-JavaScript-Expressions
Алексей

41

В другом случае я могу использовать литерал шаблона ES6 с обратными кавычками, так что для вас это может быть установлено как:

<img v-bind:src="`${imgPreUrl()}img/logo.png`">

4
Я пробовал это, но похоже, что webpack запускается до обработки привязок, потому что мой URL-адрес выводится в браузер как «@. /
Assets

imgPreUrlэто переменная, а не функция.
Прощай, StackExchange


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.