我試圖讓我的頭繞過vue.js,但我似乎錯過了一些必要的東西。綁定到vue實例內不工作的數組
我有幾個盒子,我希望它們像一個手風琴(只顯示一個;打開另一個盒子關閉前一個)。這是我的代碼:
<div id="app">
<div class="block">
<button v-on:click="mytoggle(0,$event)">block one</button>
<div v-if="boxes[0]">
<p>i am box number one</p>
<p>i am box number one</p>
</div>
</div>
<div class="block">
<button v-on:click="mytoggle(1,$event)">block two</button>
<div v-if="boxes[1]">
<p>i am box number two</p>
<p>i am box number two</p>
</div>
</div>
<div class="block">
<button v-on:click="mytoggle(2,$event)">block three</button>
<div v-if="boxes[2]">
<p>i am box number three</p>
<p>i am box number three</p>
</div>
</div>
<pre>{{ $data | json }}</pre>
</div>
和腳本:
var vm = new Vue({
el: '#app',
methods: {
mytoggle: function (n, event) {
event.preventDefault();
for(var i = 0; i < 3; i++) { // close all boxes
this.boxes[i] = false;
}
this.boxes[n] = true; // open the corresponding box
console.log(n);
}
},
data: {
boxes: [false,true,false]
}
});
當加載頁面時,第二個框被顯示出來(這是正確的,因爲箱子數組中的第二個元素是真實的) 。
但點擊按鈕不會改變boxes.array和框的顯示。日誌告訴我,這樣的腳本似乎工作,因爲我點擊按鈕時得到正確的值記錄。 所以我想它是有約束力的東西。 有人能讓我走上正軌嗎?
有沒有效果,:[ref]
此外,您還可以使用更簡單的解決方法是這樣的。檢查[這jsfiddle](https://jsfiddle.net/yerkopalma/m1byy7k3/1/)與'v顯示'和一些其他litle更改,仍然無法正常工作 –
有趣。 Vue沒有綁定數組值。它可以處理一系列對象。我會用一個解決方案爲你更新答案,即使因爲大部分時間我們都會處理對象數組,其中有一個塊對象,一個id值,一個顯示值或選定的值... – crabbly
I'我一直使用vue一段時間,我從來沒有注意到原始值數組的問題。這對我來說似乎是一個錯誤 –