2017-03-18 13 views
0

VueJS 2.0では、選択が変更されたときにv-for指示文を使用して項目のレンダリングを更新したいとします。VueJS選択時にデータを更新する方法

HTML:

<main> 
{{ testvalue }} 
    <select v-model="selected.name"> 
    <option v-for="foo in foobar">{{foo.name}}</option> 
    </select> 
    <span>Selected: {{ selected.name }}</span> 
    <div v-for="(value, key) in selected.properties"> 
    <p>{{ key }} {{ value }}</p> 
    </div> 
</main> 

app.js

new Vue({ 
    el: 'main', 
    data: { 
     foobar: [ 
     { name: 'rex', type: 'dog', properties: [{color: 'red', sound: 'load'}] }, 
     { name: 'tike', type: 'cat', properties: [{color: 'brown', sound: 'quiet'}] }, 
     { name: 'tiny', type, 'mouse', properties: [{color: 'white', sound: 'quiet'}]} 
     ], 
     selected: { name: 'tiny', type, 'mouse', properties: [{color: 'white', sound: 'quiet'}]}, 
     testvalue: 'Test' 
    }, 
    created: function() { 
     this.selected = this.foobar[0]; 
    }, 
    mounted: function() { 
     this.selected = this.foobar[1]; 
    } 
}) 

ここjsfiddle:選択したオブジェクトは、それが変化からのデータを取得しているときhttps://jsfiddle.net/doritonimo/u1n8x97e/

V-のためのディレクティブは更新されません。 。 Vueでデータが変更されたときにv-forループに更新を指示する方法はありますか?

+0

によって選択されたオブジェクトにアクセス:

<select v-model="selected"> <option v-for="(foo, i) in foobar" :value="i">{{foo.name}}</option> </select> 

selectedは単なる数です。入力したコードが不完全で、構文エラーが含まれています – CodinCat

+0

vue/vに更新する必要はありません。 Vueは変更を検出し、自動的に再レン​​ダリングします。 – CodinCat

+0

@CodinCatコードを変更して、フィドルを追加しました。(でも、フィドルが働くことはできません。) –

答えて

2

フィーリングにはいくつかの誤植が含まれているため、機能しません。

確認してください:https://jsfiddle.net/u1n8x97e/39/

あなたが全体選択したオブジェクトを格納する必要はありません。あなたは単にインデックスを保持することができます。 jsfiddleまたはcodepenを提供してください

selected: 0 

そして、あなたはfoobar[selected]

関連する問題