【发布时间】:2018-01-24 17:53:05
【问题描述】:
我试图在我的 Laravel/Vue 项目中使用 jQuery Lazy Loading,但我很难让图像出现在我的 Vue 组件中。我有以下我认为可行的 img 块:
<img v-if="vehicle.photo_path != null" :data-original="'/storage/vehicles/' + vehicle.photo_path" class="lazy" height="180" width="150"/>
我确实在这里找到了另一个问题 - Static image src in Vue.js template - 但是当我尝试这种方法时,我得到了这个:Interpolation inside attributes has been removed. Use v-bind or the colon shorthand instead.
所以我切换回 v-bind 方法,但我得到的只是一个带有灰色边框的白框 - 没有图像。如果我对 src 属性进行 v-bind,但是我可以正确地看到图像。
我知道我已经正确实现了延迟加载插件,因为我可以在我网站的其他地方(例如刀片视图)成功地调用它,但我不确定我哪里出错了。谢谢。
【问题讨论】:
-
在您调用
$(img.lazy).lazyload()时,Vue 没有设置data-original。检查时<img>的标记是否正确? -
啊,有可能。标记本身看起来是正确的,如果我在检查器中将
data-original更改为src,图像就会显示出来,所以我知道链接是正确的。我在模板视图正文的末尾调用$("img.lazy").lazyload(),我会尝试移动它,看看是否有区别。