Two way binding in Vue Datetimepicker component

11 Jun 20242 minutes to read

Two-way binding can be achieved by using the v-model directive in Vue. In the following sample, when you change the value in one DateTimePicker component, v-model will automatically update the value in the other DateTimePicker.

The following example demonstrates how to set the two-way-binding in the DateTimePicker.

<template>
  <div id="app">
    <div id="wrapper1">
      <ejs-datetimepicker id="datetimepicker" v-model="date"></ejs-datetimepicker>
    </div>
    <div id="wrapper2">
      <ejs-datetimepicker id="datetimepicker1" v-model="date"></ejs-datetimepicker>
    </div>
  </div>
</template>
<script setup>

import { DateTimePickerComponent as EjsDatetimepicker } from "@syncfusion/ej2-vue-calendars";
import { ref } from 'vue';

const date = ref(new Date());

</script>
<style>
@import "../node_modules/@syncfusion/ej2-base/styles/material.css";
@import "../node_modules/@syncfusion/ej2-buttons/styles/material.css";
@import "../node_modules/@syncfusion/ej2-vue-calendars/styles/material.css";

#wrapper1 {
  min-width: 250px;
  float: left;
  margin-left: 100px;
}

#wrapper2 {
  min-width: 250px;
  float: right;
  margin-right: 100px;
}
</style>
<template>
  <div id="app">
    <div id="wrapper1">
      <ejs-datetimepicker id="datetimepicker" v-model="date"></ejs-datetimepicker>
    </div>
    <div id="wrapper2">
      <ejs-datetimepicker id="datetimepicker1" v-model="date"></ejs-datetimepicker>
    </div>
  </div>
</template>
<script>

import { DateTimePickerComponent } from "@syncfusion/ej2-vue-calendars";


export default {
  name: "App",
  components: {
    "ejs-datetimepicker": DateTimePickerComponent
  },

  data: function () {
    return {
      date: new Date()
    };
  }
}
</script>
<style>
@import "../node_modules/@syncfusion/ej2-base/styles/material.css";
@import "../node_modules/@syncfusion/ej2-buttons/styles/material.css";
@import "../node_modules/@syncfusion/ej2-vue-calendars/styles/material.css";

#wrapper1 {
  min-width: 250px;
  float: left;
  margin-left: 100px;
}

#wrapper2 {
  min-width: 250px;
  float: right;
  margin-right: 100px;
}
</style>