vue.js移動數組位置,同時更新視圖

使用vue.js  v-for綁定若干個選項,需要對選項進行排序上下移動操作。

需要對options裏面數組的位置進行交換,通常是這樣來寫:

假設向前移動一個:

var index = this.options.indexOf(option); //獲取當前選項對象在數組裏面的索引。

var tempOption = this.options[index-1]; //存儲前一個

this.options[index-1] = option;(this.options[index])

this.options[index] = tempOption;

這樣的確改變了數組的順序,但是視圖卻沒有更新移動。詳見vue官網數組的描述.


解決辦法之一是改變他的對象,使用vue的set方法:

var index = options.indexOf(option);
var tempOption = options[index - 1];
Vue.set(options, index - 1, options[index]);
Vue.set(options, index, tempOption);


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章