使用 v-on Instance Method 时找不到方法

Method can not be found when using v-on Instance Method

我在 js 模板(稍后在组件中使用)中使用 v-on 来触发点击事件:

v-on='click : favoritesToggle(venue.slug, $event)'

但是当我点击它时我得到

Uncaught TypeError: scope.favoritesToggle is not a function

vue 对象仍然在控制台中找到它:

vm.favoritesToggle
> exports.bind(a)

我在同一页面上还有其他一些 v-on 单击事件并且运行良好,但它们不在 js 模板中,是否与找不到方法有关,因为我在单击时触发在 js 模板中? 谢谢。

基于docs我了解到在一个组件内调用的方法应该放在那个组件内。

示例:

Vue.component('venue-component', {
  template: $('#venue-template').html(),
  methods: {
    favoritesToggle: function (slug, e) {
      e.preventDefault()
      var resource = this.$resource('/api/venues/' + slug + '/favorites_toggle')

      resource.save({
        method: 'like' // unlike
      }, function (data) {})
        .success(function (data, status, request) {
        // handle success
        }).error(function (data, status, request) {
        // handle error
      })
    },
  }
})