Есть вычисляемое свойство-массив arrA.
data: {
arrB: []
},
computed: {
arrA: function () {
return this.arrB;
}
}
Долгими экспериментами обнаружил, что если я изменяю в массиве arrB только какой-то один или несколько элементов, то arrA() после этого не вызывается:
func1: function( i ) {
this.arrB[ i ] = 'значение' // Если оперировать на уровне элементов, то arrA() не будет вызвана
}
А если с массивом arrB оперировать не на уровне его отдельных элементов, а изменить его весь "как целый"(т.е. изменить указатель на массив) , то arrA после этого вызывается:
func2: function() {
this.arrB = [ 'значение', 'ещё значение', 'и ещё' ]; // Если изменить ссылку на массив, то arrA() будет вызвана
}
Поэтому пока я поставил такой костыль, и это работает:
func3: function( i ) {
var tempArr = clone( this.arrB ); // Клонирование массива
tempArr[ i ] = 'значение';
this.arrB = tempArr;
}
Но согласитесь, это же отстой. Можно ли как-то инициировать вызов arrA при изменении не всего массива arrB, а только его одного элемента? Это же типовая задача, мне кажется. Должно же быть нормальное решение.