laravel中的Javascript函数未定义

laravel中的Javascript函数未定义,javascript,laravel,laravel-5,Javascript,Laravel,Laravel 5,我在app.js中添加了一个js方法: require('./bootstrap'); window.Vue = require('vue'); Vue.component('example', require('./components/Example.vue')); const app = new Vue({ el: '#app' }); function hello() { alert("hello"); } 然后编译我的资产并将app.js添加到我的视图中: &

我在app.js中添加了一个js方法:

require('./bootstrap');

window.Vue = require('vue');

Vue.component('example', require('./components/Example.vue'));

const app = new Vue({
    el: '#app'
});

function hello()
{
    alert("hello");
}
然后编译我的资产并将app.js添加到我的视图中:

<script src="{{ asset('js/app.js') }}"></script>

如果我在这里加载我的视图并查看源代码,我可以看到app.js的链接,如果我打开app.js,我可以看到我的hello方法和很多其他东西

现在,当我想调用我的方法时,我尝试这样做:

<a onclick="hello();">


但在我的控制台中,我得到了一个未捕获的引用错误:hello不是定义的错误。有什么问题吗?

Laravel mix倾向于将所有js资产编译成一个漂亮的网页包,但是这意味着您的函数实际上不在全局范围内,因为它们都是包装在一个文件包中的

你需要:

window.hello = function () {
     alert("Hello");
}
但是,这通常不是最好的策略,理想情况下,您应该在vue中添加一个事件处理程序