使用 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
})
},
}
})
我在 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
})
},
}
})