当前位置: 首页 > 知识库问答 >
问题:

Laravel和VueJS,访问Vue实例。

孙斌
2023-03-14

我想更改一个数据属性,并在Laravel中的Vue实例上运行一个方法。然而,由于使用webpack和laravel,我似乎无法访问实例,我希望如何:

所以window.app似乎不是我的Vue类的正确实例。

下面是我正在加载的刀片视图,正如您所看到的,我在mainlayout.Blade.php中添加了一个脚本标记,只是试图更改Vue实例数据属性,并运行一个方法。

@push('scripts')
    <script>
        app.unsaved = true;
        app.triggerEvent(null, 'models', null);
    </script>
@endpush

下面是我app.js(资源/资产/js/app.js)的一部分:

const app = new Vue({
    el: '#app',
    components: {
        'models-select': ModelsSelect
    },
    data: {
        showModel: false,
        unsaved: false
    },
    mounted: function() {

        let _self = this;

        (function() {

            document.querySelectorAll("input, textarea, select").forEach(function(e) {
                e.addEventListener('change', function() {
                    _self.unsaved = true;
                    e.classList.add('is-changed');
                });
            });

            function unloadPage(){
                if (_self.unsaved) return 'You appear to have un-saved changes!';
            }

            window.onbeforeunload = unloadPage;

        })();

    },
    methods: {

        triggerEvent: function(event, target, property)
        {
            app.$refs[target].update(event, property);
        }

如您所见,我希望通过我在app.js中定义的全局应用变量来操作Vue实例。然而,情况似乎并非如此。

我得到以下错误时运行triggerevent方法:

app.triggerEvent不是一个函数

共有1个答案

翟修明
2023-03-14

在您的app.js文件中,将const app=new Vue({更改为window.app=new Vue({

然后在您的

<script>
    window.app.unsaved = true;
    window.app.triggerEvent(null, 'models', null);
</script>

 类似资料:
  • 有人能告诉我我做错了什么吗?

  • 如何从父组件中访问子组件数据?我有一个父组件“MissionPlanner ”,我想访问名为“ChosenHeroes”的子组件“chosenHeroes”数组。如果数组中有元素,我想最终呈现一个div并能够更新父数组中的数组 我不确定我是否应该使用emit()以及如何确切地使用它。我尝试制作一个自定义事件“addHero”并将其传回。但是我遇到了错误 ChosenHeroes.vue HeroP

  • 本文向大家介绍vuejs使用axios异步访问时用get和post的实例讲解,包括了vuejs使用axios异步访问时用get和post的实例讲解的使用技巧和注意事项,需要的朋友参考一下 script中。 方法各异: GET: POST: 方法一:1. 方法二:2 this.$ajax是注入axios通过修改vue原型重新命名的,还是axios。 以上这篇vuejs使用axios异步访问时用get

  • 我正在使用Laravel version 7构建自己的API,但是当我从vuejs(实际上是quasar)向Laravel发出请求时,我会得到:“从origin”http://127.0.0.1:8080/API/login“访问XMLHttpRequest”已被CORS策略阻止:请求的资源上没有'Access-Control-Allog-Origin'标头“。 为了快速解决这个问题,我尝试添加(

  • 我使用Laravel回声和推进器作为我的服务器。它已经在公共频道上工作了。 这是我的laravel echo listener图像链接的照片 现在我的问题是,当我使用PrivateChannel时,当我在PrivateChannel中侦听时,会弹出以下错误: 邮递http://localhost:3000/broadcasting/auth 500(内部服务器错误) 在控制台/网络选项卡中的错误中

  • 我正试图将一些表单数据发送到后端,但Laravel验证不会返回422状态的错误。 公理 简单的axios将请求发送到URL,并希望在请求周期中发现错误时返回响应。 Laravel 我已经设置了Laravel验证来验证一些表单输入,如果验证失败,则返回422。 回答 给出了一个响应,但当我试图对其进行控制台时,控制台中没有定义: 我在这里遇到过这个问题https://github.com/axios