我在学Vue.JS和我遇到了一点问题.我希望用户能够点击<a href="#"></a>标签e.preventDefault(),并抓取与链接相关的对象.以下是我的代码(请注意,{{前面有@,因为我使用的是Blade):

<a href="#"
   class="list-group-item"
   v-repeat="responder: responders"
   v-on="click: showResponder(responder)">
    <div class="media">
        <div class="media-left">
            <img src="" v-attr="src: responder.avatar" alt="" class="media-object"/>
        </div>
        <div class="media-body">
            <h4 class="media-heading">@{{ responder.first_name }} @{{ responder.last_name }}</h4>
            <p>
                <strong><i class="fa fa-phone"></i> Phone:</strong> @{{ responder.phone }}
            </p>
        </div>
    </div>
</a>

还有Javascript:

var vm = new Vue({
    el: "#responderContainer",
    data: {
        activeResponder: null,
        responders: []
    },
    methods: {
        showResponder: function(responder)
        {
            // Here is where I wish to prevent the 
            // link from actually firing its default action
            responder.preventDefault();
            this.activeResponder = responder;
        }
    }
});

这可以抓取responder个对象,但会触发链接——我需要能够同时抓取e.preventDefault()个对象和responder个对象.

谢谢

推荐答案

documentation显示可以传递$event来获取事件对象

http://vuejs.org/guide/events.html

<button v-on="click: submit('hello!', $event)">Submit</button>

/* ... */
{
  methods: {
    submit: function (msg, e) {
      e.stopPropagation()
    }
  }
}
/* ... */

所以你希望v-on属性是

v-on="click: showResponder(responder,$event)"

函数定义是什么

showResponder: function(responder,e)

Vue.js相关问答推荐

如何禁用Vuetify v—stepper操作按钮

在移动版本中使用标准的 v-data-table

vue3 + pinia:如何从?store 中获取一个值

如何在vue中获取特定类别的产品列表

如何在map中添加新的标记 onclick?

Vue:如何将 store 与组件一起使用?

如何在 vue.js 中删除类

如何使用 vue-resource 添加额外的标头来发布请求?

重新加载发布到 Github 页面的 Vue 网站时出现 404

ionic - `slot` 属性已被弃用 - eslint-plugin-vue

如何将 v-if 与 Vue.js 中的值进行比较

为什么我在 vue.js 中得到避免使用 JavaScript 一元运算符作为属性名称?

如何将数据属性设置为从 Vuex getter 返回的值

如何从 vue-apollo 中访问 this.$route?

模块构建失败:错误:没有给出解析器和文件路径,无法在 nuxtjs 中推断出解析器

如何从组件内的单点捕获 vuejs 错误

使用 vuejs 设置响应式屏幕宽度

VS Code - 在 .vue 文件中启用 autoClosingTags 选项

如果通过 jquery 更新,Vuejs 绑定不起作用

使用 svelte js 的原因