2016-09-16 2 views
1

Я определил метод в Vue.js 1.0.21 и получаю следующую ошибку при попытке ее использовать. Я использую версию CLI, поэтому синтаксис немного отличается от того, к которому я привык.VueJS: scope.notifications не является функцией

Ошибка

TypeError: scope.notifications is not a function. (In 'scope.notifications()', 'scope.notifications' is undefined) 

Navbar.vue

<template> 
    <div id="navbar"> 
    <!-- ... --> 
    <a href="#data" @click.prevent="notifications()"><i class="fa fa-bell-o"></i></a> 
    <!-- ... --> 
    </div> <!-- /navbar --> 
</template> 

<script> 
export default { 
    data() { 
    return { 
     versionIsVisible: false, 
     version: '2.0.0' 
    }; 
    }, 

    methods() { 
    return { 
     notifications: function() { 
     console.log('Notifications'); 
     } 
    }; 
    } 
}; 
</script> 

<style lang="scss" scoped> 
@import '../assets/sass/settings'; 
// ... 
</style> 

ответ

2

methods не должна быть функция, возвращающая объект. Он должен быть объектом, указанным в docs.

<script> 
    export default { 
    methods: { 
     notifications: function() { 
     console.log('Notifications'); 
     } 
    } 
    }; 
</script> 
3
methods() { 
    return { 
    notifications: function() { 
     console.log('Notifications'); 
    } 
    }; 
} 

должен быть объектом функций, не является функцией:

methods: { 
    notifications: function() { 
    console.log('Notifications'); 
    } 
}