使用vue-resource我可以从我的api获取数据并设置它以便我可以在我的html中使用它,我的问题是我想在v-for完成之后运行jquery函数,所以jquery可以看到元素我的dom,这是我的代码:
JS
dataUrl = "http://localhost:8081/hesabiha/userSubmissions";
var app = new Vue({
el: "#campaign",
methods: {
getSubmissions: function(){
this.$http.get(dataUrl, function(submissions){
this.$set('submissions', submissions);
});
},
},
ready: function(){
this.getSubmissions();
}
});
HTML
<div v-for="item in submissions" class="grid-item">
<img v-bind:src="item.field_image[0].url" alt="Hello">
</div>
我正在尝试对我的页面运行此功能:
$('.grid').masonry({
// options...
itemSelector: '.grid-item',
columnWidth: 200
});
它不起作用,无论如何,所以我可以在v-for完成后运行这个jquery函数吗?
答案 0 :(得分:4)
尝试
getSubmissions: function(){
var _this = this
this.$http.get(dataUrl, function(submissions){
this.$set('submissions', submissions);
this.$nextTick(function(){/*here the DOM is ready*/})
}
}
答案 1 :(得分:0)
dataUrl = "http://localhost:8081/hesabiha/userSubmissions";
var app = new Vue({
el: "#campaign",
methods: {
getSubmissions: function(){
this.$http.get(dataUrl, function(submissions){
this.$set('submissions', submissions);
$('.grid').masonry({
// options...
itemSelector: '.grid-item',
columnWidth: 200
});
});
},
},
ready: function(){
this.getSubmissions();
}
});
如果这不起作用,您可能希望在
的超时函数之后调用.grid答案 2 :(得分:0)
实际上v-for与生命周期钩子一起工作并且它不能与DOM上的第一个vue渲染一起使用UPDATE DOM,所以如果你在UPDATED之后放置任何函数 它将在V-for
之后调用enter code here
methods:{
},
updated({
//your code
}