Javascript 在Vue JS中,从Vue实例内的方法调用筛选器,但$options未定义
我已经看到了符合我问题的答案: 现在把它放在一边,当你做Javascript 在Vue JS中,从Vue实例内的方法调用筛选器,但$options未定义,javascript,vue.js,undefined,Javascript,Vue.js,Undefined,我已经看到了符合我问题的答案: 现在把它放在一边,当你做 console.log(this.$options) 我的未定义,因此无法对其调用过滤器。。 这是我的代码: methods:{ style:(input)=>{ return { backgroundColor:this.$options.filters.color(input), } } }, filters: { color: function (va
console.log(this.$options)
我的未定义
,因此无法对其调用过滤器。。
这是我的代码:
methods:{
style:(input)=>{
return {
backgroundColor:this.$options.filters.color(input),
}
}
},
filters: {
color: function (value) {
console.log(color(value));
if (!value) return ''
return `rgb(${value},${value},${value})`
}
}
Error in render: "TypeError: Cannot read property 'filters' of undefined"
您正在使用样式方法的箭头函数。应该是:
style(input) {
return {
backgroundColor:this.$options.filters.color(input),
}
}
如果您没有在过滤器中使用此
,则可以在外部提取它,如:
function color (value) {
console.log(color(value));
if (!value) return ''
return `rgb(${value},${value},${value})`
}
methods: {
style(input) {
return {
backgroundColor: color(input),
}
}
},
filters: { color }
您可以在方法中编写此函数
methods:{
style:(input)=>{
return {
backgroundColor:this.color(input),
}
},
color: (value) {
console.log(color(value));
if (!value) return ''
return `rgb(${value},${value},${value})`
}
}
我想可能是你的箭头功能吧!更改style:function(input){}
怎么样你完全正确,最后解决了,谢谢!第一部分是正确的答案,即使第二种编码方式也有意义,谢谢!