我正在尝试在 v-if 指令中使用一个函数,就像在 vue 模板中一样
<template>
<ul class="list-group">
<li class="list-group-item list-group-item-info">
<div class="row">
<div v-for="col in colss" class="" :class="bootstrapClass">{{col | capitalize}}</div>
</div>
</li>
<li v-for="item in datas[collectionsindatas['reference']]" class="list-group-item">
<div class="row">
<div v-for="property in columns.slice(0,(columns.length))" class="" :class="bootstrapClass">{{ item[property] }}</div>
<div v-if="compareCollections(item[comparecol],datas[collectionsindatas['compare'][comparecol]])" class="" :class="bootstrapClass">
OK
</div>
<div v-else class="" :class="bootstrapClass">!!NOK!!</div>
</div>
</li>
</ul>
</template>
Run Code Online (Sandbox Code Playgroud)
我的方法是这样的:
methods:{
compareCollections:function(reference,compare){
if(compare!='undefined' && compare!=''){
if(compare===reference){
return true;
}
return false;
}
return false;
},
}
Run Code Online (Sandbox Code Playgroud)
它失败并显示以下消息:[Vue 警告]:属性或方法未在实例上定义,但在渲染期间被引用
使用一种方法而不是在 v-if 指令中编写许多丑陋的东西,例如
v-if="datas[collectionsindatas['compare'][comparecol]]!='undefined'&&(item[comparecol]===datas[collectionsindatas['compare'][comparecol]])"
Run Code Online (Sandbox Code Playgroud)
这样做的正确方法是什么?
谢谢你的帮助