Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我可以从标题中触发另一个组件上的函数吗?_Javascript_Events_Vue.js_Vuejs2 - Fatal编程技术网

Javascript 我可以从标题中触发另一个组件上的函数吗?

Javascript 我可以从标题中触发另一个组件上的函数吗?,javascript,events,vue.js,vuejs2,Javascript,Events,Vue.js,Vuejs2,您好,我有一个关于vue路由和树如何工作的问题。我有我的parrent路由器,在那里我有我的路由器视图和我的头在同一层 我有一些功能,我想从我的头触发到路由器视图中名为dashboard的路由 e、 g: header.vue <a href="#" @click.prevent="update()"> click me to update dashboard </a> dashboard.vue <p> {{datafrom filldata}} &l

您好,我有一个关于vue路由和树如何工作的问题。我有我的parrent路由器,在那里我有我的路由器视图和我的头在同一层

我有一些功能,我想从我的头触发到路由器视图中名为dashboard的路由

e、 g: header.vue

<a href="#" @click.prevent="update()"> click me to update dashboard </a>

dashboard.vue

<p> {{datafrom filldata}} </p>

  methods: { 
   fillDataToP() {
    function to fill data
   }
  }
{{datafrom filldata}

方法:{ fillDataToP(){ 函数来填充数据 } }

这在vue中可能吗

您可以在vuejs中使用EventBus功能

main.js
文件中添加

const EventBus=new Vue()

Vue.prototype.$bus=EventBus

现在可以从
header.vue
文件发出事件:

示例
this.$bus.emit('someString',SomeObjectToPass)

然后在
仪表板.vue
上,您可以使用以下命令收听事件:

this.$bus.on('sameStringAsInEmit',()=>{

//填充数据


})

的可能重复是重复候选项中已列出的方法之一,还有其他方法,在这种情况下,数据应处于Vuex状态,并且“更新”按钮应触发更新状态的操作,然后相应地触发仪表板的重新渲染器。当我创建它时,它会说this.$bus.on不是函数抱歉,忘记在on之前添加$this.$bus.$on()应该可以工作。emit也是一样:this.$bus.$emit():)呵呵,我知道了,但现在我试图从仪表板上的方法调用一个函数,但它说this.filldata()不是一个函数:)我可以控制日志,但不能使用仪表板上的方法。调用this.filldata()时,它指的是eventbus。您可以做的是:声明一个名为self的变量并将其赋值(在调用this.$bus之前)。e、 g var self=这个;然后在.$on()中,您可以通过从self:self.function到CallFromDashboard()调用该方法来使用该方法