2016-04-26 12 views
1

これに問題があります。ajaxのtotalUserPostsが返された後にゼロが返されます。すべてのVuejsのデータを変更

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の機能が戻る前にスクロールを呼んでいる

+0

console.log(this.totalUserPosts);それが割り当てられた後のdone関数の中で出力が何であるか教えてください。 – TehSphinX

+0

totalUserPostsの戻り値= 11 – kamyab

+0

これは戻りません。 – kamyab

答えて

1

後に行われ、AJAXリクエストが私を助けてくださいtotalUserPostsを変更します。スクロール機能をajaxリクエストのコールバック関数に含める必要があります。

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(this.getUserPosts) 
     }, 
     getUserPosts (data) { 
      this.userPosts = data.posts 
      this.totalUserPosts = data.total 
      $(window).scroll(() => { 
      if($(window).scrollTop() + $(window).height() > $(document).height() - 150) { 
      console.log(this.totalUserPosts) 
      } 
      }) 
     } 
     }, 
     ready() { 
     this.getPostsAjax(); 
     } 
    }) 
+0

:(これは私のために未定義です:(別の解決策はありますか? – kamyab

+0

正確には何が定義されていませんか?これは私が上の私のコメントで狙っていたものです。 @Jeff:この代わりに変数を使用するようにソリューションを調整できますか? – TehSphinX

+0

es16の矢印関数は、@TehSphinXのスコープを保持します。 – Jeff

関連する問題