【发布时间】:2019-02-14 04:21:45
【问题描述】:
我正在尝试格式化货币。为此,我使用这样的全局过滤器:
Vue.filter('formatMoney', (val) => {
if (!value) return ''
val = val.toString()
return val.replace(/\B(?=(\d{3})+(?!\d))/g, ",")
})
new Vue({
el: '#app',
data: {
price: 1000
}
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.min.js"></script>
<div id="app">
<p>{{ price | formatMoney }}</p>
</div>
但是,我收到此错误,称为 value undefined!但令人惊讶的是,它适用于本地过滤器:
new Vue({
el: '#app',
data: {
price: 1000
},
filters: {
formatMoney(val) {
return val.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",")
}
}
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.min.js"></script>
<div id="app">
<p>{{ price | formatMoney }}</p>
</div>
如何使这个全局过滤器起作用?
JSFiddle:http://jsfiddle.net/ahutL91m/4/
【问题讨论】:
标签: javascript html vue.js filter