Vue.js Vue将一个事件处理程序传递给另一个组件-事件的处理程序无效;updatefilters";:没有定义
我有一些嵌套组件。以下是我在HTML页面中创建站点的顶级组件:Vue.js Vue将一个事件处理程序传递给另一个组件-事件的处理程序无效;updatefilters";:没有定义,vue.js,Vue.js,我有一些嵌套组件。以下是我在HTML页面中创建站点的顶级组件: <advanced-options-model ... @updatefilters="updateFilters"></advanced-options-model> 实际上,如果我删除AdvancedOptions模式中的@updatefilters=“updatefilters”,我看不到任何错误,因此问题似乎出现在该模板中。但是,在此模板中,我将相同的函数传递给过滤器复选框组件: <filte
<advanced-options-model ... @updatefilters="updateFilters"></advanced-options-model>
实际上,如果我删除AdvancedOptions模式中的@updatefilters=“updatefilters”
,我看不到任何错误,因此问题似乎出现在该模板中。但是,在此模板中,我将相同的函数传递给过滤器复选框
组件:
<filter-checkboxes ... @updatefilters="updatefilters"></filter-checkboxes>
下面是我在inspector中看到的确切错误消息:
vue.js:616 [Vue warn]: Invalid handler for event "updatefilters": got undefined
found in
---> <FilterCheckboxes>
<AdvancedOptionsModel>
<Root>
vue.js:616[vue warn]:事件“updatefilters”的处理程序无效:未定义
发现于
--->
首先,您没有将updateFilters
传递到advanced options model
组件,而是在updateFilters
事件上绑定updateFilters
方法
要将参数绑定到组件,应该使用v-bind:…
或只使用:…
。速记@…
用于v-on:…
如果要将updateFilter
事件从filter复选框
组件“冒泡”到根组件,应按如下方式执行:
var filtercheckbox={
模板:`
{{value}}({{count}})
`
};
var AdvancedOptions模式={
组成部分:{
“过滤器复选框”:过滤器复选框
},
模板:`
...
...
`
};
Vue.组件('advanced-options-model',AdvancedOptions-Modal);
在其他地方:
方法:{
updateFilters(){
//做点什么
}
}
谢谢。我已经做出了改变。出于某种原因,即使我在模板中输入的全部内容都是…
,过滤器复选框也不会输出。奇怪的是,它呈现为文本值“>
。我甚至试过只使用一个自动关闭标签,例如@Martyn你忘了在@updatefilters=…
中关闭“
!谢谢你,我想我已经彻底检查过了。是的,现在正在工作。
vue.js:616 [Vue warn]: Invalid handler for event "updatefilters": got undefined
found in
---> <FilterCheckboxes>
<AdvancedOptionsModel>
<Root>