代码之家  ›  专栏  ›  技术社区  ›  TheDevWay

Uncaught TypeError:尝试在Vuejs中调用onchange()方法时,无法读取未定义的属性“apply”

  •  0
  • TheDevWay  · 技术社区  · 6 年前

    我正在使用 Laravel Nova vuejs Tool.vue .

    我运行这个非常简单的代码来执行 onChange() 事件,但我得到以下错误:

    Uncaught TypeError: Cannot read property 'apply' of undefined
        at e (vendor.js?id=52886433f04b87b2c184:1)
        at HTMLSelectElement.Yr.e._withTask.o._withTask (vendor.js?id=52886433f04b87b2c184:1)
    

    这是我的表格:

    <template>
        <div>
            <heading class="mb-6">Model Register Custom</heading>
    
            <div>
                <select v-model="selected" @change="onChange">
                  <option value="A">A</option>
                  <option value="B">B</option>
                  <option value="C">C</option>
                </select>
            </div>
        </div>
    </template>
    

    <script>
    let Vue = require('vue');
    
    export default {
        mounted() {
            var vm = new Vue({
                methods: {
                    onChange() {
                        alert("dsds");
                    }
                }
            })
        },
    }
    </script>
    

    P、 S:它在简单javascript simple onChange中工作得很好,但是 vuejs公司

    1 回复  |  直到 6 年前
        1
  •  1
  •   Hamilton Gabriel    6 年前

    它的形状不对,你应该把它扔出去。作为生命周期,挂载它已经是一个函数,所以如果你想在屏幕的组装中调用它,你就在组件外声明方法,并在挂载的内部调用它。但在您的情况下,调用挂载的函数是没有意义的,只有当您单击某个项时才是。

    <div id="app">
    <heading class="mb-6">Model Register Custom</heading>
            <div>
                <select v-model="selected" @change="onChange">
                  <option value="A">A</option>
                  <option value="B">B</option>
                  <option value="C">C</option>
                </select>
            </div>
    </div>
    
    new Vue({
    el: '#app',
    methods: {
        onChange() {
            alert("dsds");
        }
    }
    })
    

    https://jsfiddle.net/hamiltongabriel/ke8w9czy/4/