【问题标题】:How can I call method in global vue component?如何在全局 vue 组件中调用方法?
【发布时间】:2017-12-19 00:37:39
【问题描述】:

我有根 vue 组件 app.js:

...
const app = new Vue({
    el: '#app',
    ...
    methods: {
        modalShow: function(target, id=null, message=null){
           ...
        },
        ...
    }
});

我有一个这样的子组件:

<template>
    <div>
        <ul>
            <li> 
                <a href="#" class="thumbnail"
                   title="Add photo" 
                   @click="modalShow('modal-add-photo', product.id)"
                > 
                    <span class="fa fa-plus fa-2x"></span> 
                </a> 
            </li>
        </ul>
    </div>
</template>

<script>

    export default {
        ...
        methods: {
            ...
        }
    }
</script>

modalShow 方法位于根目录中。我怎么能从孩子那里调用它?

如果现在执行上面的代码,我会得到以下错误:

[Vue 警告]:属性或方法“modalShow”未在 实例,但在渲染期间引用。确保声明反应式 数据选项中的数据属性。

【问题讨论】:

  • 你的意思是根Vue吗?您的组件是根的直接子级吗?
  • @Bert Evans,是的,我就是这个意思

标签: vue.js vuejs2 global vue-component vuex


【解决方案1】:

modalShow 方法传递给子组件。

<child :modal-show="modalShow"></child>

export default {
  props:["modalShow"]
}

那么就可以在child中使用方法了。

【讨论】:

  • @TrendingNews 你不需要标记我。如果这是一个用 Vue 标记的问题,我会看到它:)
  • 好的。对不起,我不会再标记你了
猜你喜欢
  • 1970-01-01
  • 2018-09-03
  • 2017-05-24
  • 2021-04-28
  • 2020-11-25
  • 2021-09-24
  • 2020-04-18
  • 2016-07-01
  • 2017-09-03
相关资源
最近更新 更多