vue filters中使用data中數據


vue filters中 this指向的不是vue實例,但想要獲取vue實例中data中的數據,可以采用下面方法。在 beforeCreate中將vue實例賦值給全局變量app0,然后filters中即可通過app0獲取data中數據

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<!-- Vue.js v2.6.10 -->
<script src="https://cdn.jsdelivr.net/npm/vue"></script>
</head>
<body>
<div id="app">
<ul>
<li v-for="item in list">{{item.title | model}}</li>
</ul>
</div>
<script>
var app0;
var app = new Vue({
el: '#app',
data: function () {
return {
name: '',
shop: '',
list: [
{
title: '${name}的購物列表一,所在商城${shop}'
},
{
title: '${name}在${shop}的購物列表二'
}
]
}
},
beforeCreate: function () {
app0 = this;
},
methods: {},
mounted: function () {
this.$nextTick(function() {
setTimeout(() => {
this.name = '張三';
this.shop = '家樂福';
}, 1000)
})
},
filters: {
model: function (val) {
return val.replace(/\$\{name\}/g, app0.name).replace(/\$\{shop\}/g, app0.shop);
}
}
})
</script>
</body>
</html>


免責聲明!

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



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