首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用vuejs2从另一个组件执行函数

如何使用vuejs2从另一个组件执行函数
EN

Stack Overflow用户
提问于 2018-07-28 22:34:59
回答 1查看 73关注 0票数 2

我有一个组件,它需要在我的侧边栏打开时收集事件,每次我需要打开我的侧边栏时都需要调用这个函数。

这里有一个例子:我点击一个元素,打开我的侧边栏,mysiderbar调用一个函数,这个函数将调用一个alert函数。

但是我的代码是从我挂载的函数形式vuejs执行的

这是我的第一个文件,它将调用我的侧边栏

代码语言:javascript
复制
<template>
    <div>
        <p>Just a template</p>
    </div>
</template>

<script>
export default {
  name: 'home',
  data: function() {
      return {
          status: 'critical'
      }
  },
    mounted() {

        var openSidebar = function() {
            document.getElementsByClassName('side-bar')[0].style.display = 'block';
        };
        document.getElementById('box').addEventListener('click', openSidebar);
    },

}
</script>
<style>

</style>

这是我的第二个文件

代码语言:javascript
复制
<template>
   <div>
     <app-server-status></app-server-status>
     <div id="box">
       <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Similique laborum repellat nihil maxime et veniam sed, sequi minima, quasi ipsum enim.</p>
     </div>
     <div class="side-bar">Lorem ipsum dolor sit amet consectetur adipisicing elit. Porro amet sed autem non qui dolor minima. Incidunt eos recusandae doloribus hic nesciunt nostrum suscipit dolorum velit, voluptatum, accusamus, ullam fugiat!</div>
   </div>
</template>

<script>
//import local component server status
import ServerStatus from './ServerStatus.vue';

export default {
  name: 'home',
  components: {
      'app-server-status': ServerStatus
  },
  methods: {
        callAlert() {
                alert('TESTE')
            }
        },
  created() {
  },
  mounted() {
    function callAlert() {
      alert('Test');
    }

  },
}
</script>
<style>
  #box {
    background: red;
    width: 200px;
    height: auto;
    float: left;
  }
  .side-bar {
    position: absolute;
    width: 250px;
    height: 400px;
    right: 0;
    display: none;
    background: blue;
  }

</style>

当侧边栏打开时,我想调用一个函数alert?

EN

回答 1

Stack Overflow用户

发布于 2018-08-02 13:14:51

尝试注册函数的全局引用(可能不是最好的替代方法)。

您的第二个文件:

代码语言:javascript
复制
...
 methods: {
     callAlert: function() {
      alert('test');
     }
 }
 mounted () {
    this.$alert = this.callAlert
 }
...

在第一个文件中:

代码语言:javascript
复制
mounted () {
    this.$alert()
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51572324

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档