小编Elo*_*e85的帖子

在 v-if 中使用方法函数

我正在尝试在 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)

这样做的正确方法是什么?

谢谢你的帮助

vue.js vuejs2

6
推荐指数
2
解决办法
3万
查看次数

标签 统计

vue.js ×1

vuejs2 ×1