Я сталкиваюсь с той же проблемой и использую object
для ее решения, поскольку @error зависит от неработающих ссылок, но не от неработающих изображений внутри ссылок, поэтому я создаю что-то для переключения между ними
<object data="https://here the right image if not found will display the image inside img tag.jpg" type="image/png">
<img src="https://via.placeholder.com/300" alt="Not found image">
</object>
Впервый проверит, найден ли :data
в object
или нет, если он не найден, он переключится на тег <img>
, и здесь вы поместите изображение-заполнитель,
Обновление 2: я использую ваш код иобновите его, я надеюсь, что это сработает
<div id="app">
<img width="25%" id="img" src="https://upload.wikimedia.org/wikipedia/commons/5/54/Wallpaper-img_0254.jpg" @error="imgPlaceholder">
<img width="25%" id="img" src="https://images.pexels.com/photos/248797/pexels-photo-248797.jpeg?auto=compress&cs=tinysrgb&h=350" @error="imgPlaceholder">
<p>{{brokenText}}</p>
<HelloWorld/>
</div>
<script>
import HelloWorld from "./components/HelloWorld";
export default {
name: "App",
data () {
return {
ifImageBroken: false,
brokenText: ''
}
},
components: {
HelloWorld
},
methods: {
imgPlaceholder(e) {
e.target.src = "https://via.placeholder.com/300"
}
}
};
</script>
Здесь я создаю новый метод, который принимает событие и заменяет текущее прерванное изображение URL-адреса другим