Вместо использования Eval, Вы можете написать код, вызвав функцию из HTML, а в поле вы можете написать функцию, который определит, какой будет выход.
в Html:
<tr v-for="(item, index) in myitems">
<td v-for="column in mycolumns" v-text="myFunc(index, column.field)">
</td>
</tr>
в Вью компонента:
mycolumns: [
{
column: "Todo Name",
field: (item) => item.name
},
{
column: "Status",
field: (item) => item.status
},
{
column: "Status Explanation",
field: (item) => item.status == 1 ? 'Done' : 'Todo'
}
]
},
methods:{
myFunc(index, fn){
return fn(this.myitems[index])
}
}
проверка работает fiddle.
Однако это не очень хорошая практика, так как теперь ваши данные жестко привязаны к вашему html. Таким образом, ваш контейнерный компонент и контейнер представления не являются независимыми, не могут расти независимо и подвержены ошибкам.
Вы имеете в виду $ eval в названии? И в чем проблема в скрипке, мне кажется, что это нормально. – Saurabh
Ах ошибка, спасибо! – kvdmolen
jsfiddle использует VueJS 1, а не VueJS 2! – kvdmolen