2016-11-10 85 views
1

我以下面的格式從後端接收對象數組。我試圖獲取這些數據並將其推入JavaScript數組中,以便稍後根據我的需要使用它們。Vuejs陣列推送

[ 
    { 
    id: 1, 
    name: "Dr. Darrin Frami III", 
    email: "[email protected]", 
    address: "42568 Cameron Cove Fritschborough, MA 86432-0749", 

    }, 
] 

這裏是我的vuejs代碼:

<script> 
    export default { 
     data(){ 
     return { 
      fakeUsers: [], 
      fakeUser: {id: '', name: '', email: ''}, 
     } 
     }, 
     methods:{ 

     }, 
     mounted() { 
      var route = '/get-users'; 
      this.$http.get(route).then((response)=>{ 
       for (var i = 0; i < response.data.length; i++) { 
       this.fakeUser.id = response.data[i].id; 
       this.fakeUser.name = response.data[i].name; 
       this.fakeUser.email = response.data[i].email; 
       this.fakeUsers.push(this.fakeUser); 
       } 

      }); 
      console.log(this.fakeUsers); 
      console.log(this.fakeUsers[0]); 
     } 
    } 
</script> 

的VUE-dev的工具,結果是:該行console.log(this.fakeUsers);[__ob__: Observer]

enter image description here

輸出。它不應該打印像[Array[10]]

console.log(this.fakeUsers[0]);的輸出是undefined,我不明白爲什麼。

回答

4

$ HTTP()創建一個異步AJAX調用,所以在then()代碼後之後執行控制檯命令。

簡單的解決方案:將控制檯命令放入.then()中的函數中。

+0

優秀的答案隊友..但我需要知道一件事..因爲即時通訊與新vuejs ..並沒有完成閱讀所有文件。只是看了一些教程。但我有一個查詢,我怎樣才能得到第一個元素的Ajax調用完成後,頁面加載? @linus –