【发布时间】:2016-04-26 09:46:40
【问题描述】:
在 ajax totalUserPosts 返回零后我有这个问题,我不想要这个!
new Vue({
el: "#app",
data: {
totalUserPosts:0,
},
methods:{
getPostsAjax () {
$.ajax({
url:url,
type: 'get',
cache: false,
dataType: "json",
data:{
limit: this.limit,
id: this.vue_profile_id
}
}).done((data) => {
this.userPosts = data.posts;
this.totalUserPosts = data.total
}.bind(this))
},
getUserPosts () {
this.getPostsAjax()
$(window).scroll(() => {
if($(window).scrollTop() + $(window).height() > $(document).height() - 150) {
console.log(this.totalUserPosts)
}
})
}
})
我想在完成 ajax 请求后更改 totalUserPosts 请帮助我
【问题讨论】:
-
能不能把console.log(this.totalUserPosts);在完成分配后的函数内部并告诉我们输出是什么?
-
这个totalUserPosts的返回值=11
-
这不是归零
-
你试过在 done 函数中声明
$(window).scroll函数吗? -
有几个问题: 1)
getPostsAjax()是一个异步方法,所以scroll()之后的代码在Ajax 调用完成之前就已经运行了。我的建议:使用 Promises 或实现一个回调,这样你就可以做到getPostsAjax(cbFunctionHere)2) 在回调内部.scroll(),this不会指向 vue 实例。你应该使用普通函数并正确绑定它。
标签: javascript jquery ajax vue.js