小编iva*_*j22的帖子

属性这个.$ el undefined在单个文件组件vue js上

我正在尝试使用laravel mix和vue js创建一个全局组件,但是当访问属性时this.$el它是未定义的.这是我的组件文件:

Datepicker.vue

<template>
<input 
    type="text" 
    :name="name" 
    :class="myclass" 
    :placeholder="placeholder"
    :value="value" />
</template>  

<script>
export default {
  props: ['myclass','name','placeholder','value'],
  data () {
    return {

    }
  },
  created () {
    console.log("this.$el", this.$el); //undefined
    console.log("this", this); //$el is defined
    var vm = this;
    var options = {
        "locale": "es",        
        "onChange": function(selectedDates, dateStr, instance) {
            vm.$emit('input', dateStr);
        }
      };

    $(this.$el)
      // init
      .flatpickr(options);      
  },
  destroyed(){
    console.log("destroyed");
  }
}
</script>
Run Code Online (Sandbox Code Playgroud)

安慰

但是,当组件创建为X-Template时,它可以工作:

client.js

Vue.component('date-picker', {
  props: ['myclass','name','placeholder','value'],
  template: '#datepicker-template',
  mounted: function () { …
Run Code Online (Sandbox Code Playgroud)

javascript vue.js vue-component vuejs2 laravel-mix

6
推荐指数
1
解决办法
7637
查看次数

标签 统计

javascript ×1

laravel-mix ×1

vue-component ×1

vue.js ×1

vuejs2 ×1