2017-09-08 9 views
0

私はVueJSを少し新しくしているので、私はいくつかの助けを得ることを望んでいました。私は現在、PHPファイルからjsonオブジェクトの配列を返しています。データがアレイに追加されたときにv-forを更新する - VueJS

例:

<?php 
    /* 
    Returns an array similar to this: 
    [ 
     {name: 'foo'}, 
     {name: 'bar'}, 
     {name: 'banana'} 
    ] 
    */ 

    echo json_encode(array_values($array)); 
?> 

そして、私はVueの中のオブジェクトの既存の配列にオブジェクトのこの配列を追加しています:

axios.post('http://localhost/get_array.php').then(response => { 
    // Append returned array to already existing array 
    for (var i = 0; i <= response.data.length - 1; i++) { 
    this.existingArray.push(response.data[i]) 
    } 
}).catch(e => { 
    console.log("Error") 
}) 

は今、私はのためにデータを追加していますVueJSにforループを使用せずに自動的にこれを行う組み込み関数があるのか​​どうか疑問に思っていましたか?

axios.post('http://localhost/get_array.php') 
    .then(response => { 
    this.existingArray = this.existingArray.concat(response.data) 
    }) 
    .catch(e => { 
    console.log("Error") 
    }) 

更新をトリガする必要があり応答データ連結を呼び出した結果とexistingArrayの更新:

+0

['Array.prototype.concat()'](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/concat)と[反応の深さVue docs](https://vuejs.org/v2/guide/reactivity.html)を参照してください。 – Nit

+0

'concat()'を使って配列をマージしようとしましたが、レンダリングしていたビューを更新しませんでした。私は 'Vue.set()'も試しましたが、それを動作させることができなかったので、私はforループに戻らなければなりませんでした。 @Nit –

+0

どのように 'concat'を使っていましたか? – Bert

答えて

1

新しい連結配列を返す連結を使用することができます。

関連する問題