Vue中filters使用data的數據


vue 的filters中 this指向的並不是vue實例,但想要獲取vue實例中data中的數據,可以在 beforeCreate中將vue實例賦值給定義的全局變量app,然后在filters中通過app代替this來獲取data中的數據。

<template>
    <div>
        <div v-for="(item,index) in list" :key="index">
            <p>姓名{{item.name}}</p>
            <p>性別{{item.sex | sexFilter}}</p>
        </div>
    </div>
</template>

<script>
    let vueApp = null
    export default {
        name: 'UserFilters',
        data() {
            return {
                sexOption: [{
                    label: '', value: 0
                }, {
                    label: '', value: 1
                }],
                list: [{
                    name: '張三',
                    sex: 0
                }, {
                    name: '李四',
                    sex: 1
                }]
            }
        },
        filters: {
            //性別過濾顯示
            sexFilter(data) {
                let resultData = ''
                vueApp.sexOption.forEach(element => {
                    if (element.value == data) {
                        resultData = element.label
                    }
                });
                return resultData
            }
        }
    }
</script>

<style scoped>

</style>

這個問題相信很多人都會遇到。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM