Есть массив array, содержащий полсотни объектов примерно следующего вида:
{
name: "name",
val: 1,
is_availible: function () { return this.val >= 10; }, //например так
do_action: function () { console.log(this.name); },
}
Старое применение:
//обходим массив и для каждого элемента и выполняем:
if ( array[index].is_availible() ) {
array[index].do_action();
}
Объекты описаны в отдельном файле для удобства дополнения и редактирование в виде:
[
{ name: __ , val: __ , is_availible: __, do_action: __ },
...
{ name: __ , val: __ , is_availible: __, do_action: __ }
]
Необходимо перенести эту структуру во Vue для отображения массива примерно в следующем виде:
<template v-for="item in array">
<button v-if="item.is_availible()" @click="item.do_action()">{{item.name}}</button>
</template>
Возможно ли реализовать такое не разбивая объекты на data, methods и computed, сохранив прежнюю структуру хранения объектов?