I use a [global bus](https://v2.vuejs.org/v2/guide/components.html#Non-Parent-Child-Communication) to manage emitted and received events between components (sibling to sibling and child to parent). `bus` is defined as `window.bus = new Vue()` (which I know is not recommended but I failed to use `import` in a sustainable way).

It works fine but one drawback of such an approach is that I have to use a handler in the template of my component:

```
<template>
(...)
<div v-for="c in aList" v-on:click="emitcasedetails(c)">something</div>
(...)
</template>

<script>
export default {
    (...)
    methods: {
        emitcasedetails: function (c) {
            bus.$emit('casedetails', c._source)
        },
    (...)
}
</script>

```

Again, this works fine but requires extra code.

I tried to directly

```
<div v-for="c in aList" v-on:click="bus.$emit(c._source)">something</div>

```

but `bus` is not defined when running the app.

**Is a direct reference to the bus in the component's template possible or do I absolutely have to go via a handler?**