Данные должны быть функцией, которая возвращает объект, а не просто такой объект, как:
data: function() {
return {
todos: [
newData
]
}
}
Также finditem()
должно быть вычисляемым свойством как:
computed: {
finditem: function() {
var setarray = [];
var result = Object.keys(newData).map(function (key) {
return [key, newData[key]];
});
var travelModeId = '';
$(result).each(function (i, value) {
var getValue = value[0];
// No Input
if (getValue == "Reservation" || getValue == "LastUpdatedBy" || getValue == "LastUpdated") {
var first = value[0];
var second = value[1];
var htmlId = 0;
setarray.push({ item: first, result: second, html: htmlId });
}
// Text Input
if (getValue == "Fare" || getValue == "AgentFee" || getValue == "ChangeFee" || getValue == "NteAmount" || getValue == "GsaRate" || getValue == "ClientApprovedAmount" || getValue == "CancelledDate") {
var first = value[0];
var second = value[1];
var htmlId = 1;
setarray.push({ item: first, result: second, html: htmlId });
}
// Checkbox
if (getValue == "Ground" || getValue == "NoGsa") {
var first = value[0];
var second = value[1];
var htmlId = 2;
setarray.push({ item: first, result: second, html: htmlId });
}
// Select
if (getValue == "TravelModeId") {
travelModeId = value[1];
}
// Select Dropdown
if (getValue == "TravelModeDropdown") {
var first = "Travel Mode";
var second = value[1];
var htmlId = 3;
setarray.push({ item: first, result: travelModeId, html: htmlId, dropdown: second });
}
});
return setarray;
}
}
А чем вы называете вычисляемое свойство вроде:
<li v-for="item in finditem" v-if="item.html == 0">
Методы не вызываются снова автоматически, если изменяется ваша переменная / зависимость, которая используется внутри метода.
Вычисленные свойства вызываются снова, если переменная / зависимость изменяется и поэтому v-for
автоматически получает правильные данные.
Попробуйте эти изменения и посмотрим, обновит ли он данные.