我有一個字符串管道的值,我想修改。串管具有0-5值的範圍,所以我做了以下內容:Vue計算的setter得不到v模型中的數組觸發
new Vue({
el: '#app',
data: {
valuesString: ""
},
computed: {
values: {
get() {
\t var values = this.valuesString ? this.valuesString.split("-") : [];
if(values.length < 5)
\t values.push(null);
return values;
},
set(values) {
this.valuesString = values.filter(value => value).join("-")
}
}
}
});
<script src="//cdnjs.cloudflare.com/ajax/libs/vue/2.3.4/vue.min.js"></script>
<div id="app">
<div v-for="(value, i) in values" :key="i">
<select v-model="values[i]" style="width: 200px">
<option></option>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
</select>
</div>
<br>
<span>valuesString: {{ valuesString }}</span>
<br>
<span>values: {{ values }}</span>
</div>
現在的問題是,我的計算values
財產getn't的setter方法調用。
我的用例是一個類似過濾器的過濾器。我從我的路由器獲取valuesString
作爲參數。用戶應該能夠選擇1-5個類別進行過濾。每次過濾器改變時,路由器參數應該改變,並且應該出現新的空選擇,直到設置了5個類別。
如果我理解正確的,你希望用戶能夠選擇最多的五大類,並建立這些選擇的類別爲一個字符串? – Bert
究竟是什麼,因爲字符串是我的路線的參數,所以在一個站點刷新或更改路線後,我的選擇應該已經設置(或更改) – wendt88