//主js
window.chat = new Vue({
el: '#Chat',
components: {
chat: Vue.extend(require('./../components/chat/component.vue'))
},
filters: {
emoji: function(content){
return content;
}
}
})
//聊天script.js
module.exports = {
components: {
message: Vue.extend(require('./../components/message/component.vue'))
}
}
//消息模板
<span>{{{ message.text | emoji }}}</span>
这东西给我
app-1.0.4.js:12304 [Vue warn]: Failed to resolve filter: emoji (found in component: <message>)
我尝试$ root.emoji和$ root.filters.emoji只是为了尝试,但是没有用。
因此,我该如何进行这项工作。我真的很想将过滤器保留在main.js中
您可以使用mixin(https://vuejs.org/guide/mixins.html):
mixins / filter-emoji.js:
module.exports = {
filters: {
emoji: function(content){
return content;
}
}
}
main.js
window.chat = new Vue({
el: '#Chat',
mixins: [
require('./../components/chat/component.vue')
],
components: {
chat: Vue.extend(require('./../components/chat/component.vue'))
},
});
消息/ component.vue:
module.export = {
mixins: [
require('./../components/chat/component.vue')
]
}
这是在某些组件之间共享过滤器的方法之一。如果您经常需要它,甚至可以在全球范围内注册(请参阅文档https://v1.vuejs.org/guide/custom-filter.html):
Vue.filter('emoji', function(content){
return content;
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句