Как преобразовать указатель даты Jquery в компонент Vuejs? - PullRequest
0 голосов
/ 02 ноября 2019

У меня есть JQuery datepicker с именем bootstrap-datepicker, и я попытался преобразовать его в Vuejs Component, и я мог сделать это, но осталась только одна проблема - это не двустороннее связывание, и поэтому я не могу использовать его идеально.

Это мой компонент:

<template>
<input type="text" name="date" class="form-control" placeholder="Enter the date" required>
</template>

<script>
export default {
    mounted() {
        $(this.$el).datepicker({autoclose: true, format: 'yyyy-mm-dd', todayHighlight : true})
    }
}
</script>

И вот как я его использовал:

<date-picker v-model="record.date"></date-picker>

Это корень Vuejs:

<script type="text/javascript">
const app = new Vue({
    el: '#app',
    data:{
        record: {},
        editMode: false,
        url: '',
        rows: @json($rows),
        kinds: @json($kinds),
    },
    methods: {
        setID(e){
            this.url = @json(route('shexa.index')) + '/' + e.currentTarget.id
        },
        edit(e){
                this.editMode = true
                this.record = this.rows.data.find(row => row.id == e.currentTarget.id)
                this.url = @json(route('shexa.index')) + '/' + e.currentTarget.id
        },
        add(){
            this.editMode = false
            this.record = {}
            this.url = @json(route('shexa.store'))
        }
    }
});

Работает нормально, но когда я нажимаю на поле, оно появляется, но когда я покидаю поле, оно будет пустым.

Это адрес плагина: https://bootstrap -datepicker.readthedocs.io / ен / последний /

1 Ответ

0 голосов
/ 03 ноября 2019

Это мой HTML-файл:

<!DOCTYPE html>
<html>
<head>
<title>Website</title>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.9.0/css/bootstrap-datepicker.standalone.css">
</head>
<body>
<div id="app">
    <button @click="setDate">Edit</button>
    <date-picker v-model="date"></date-picker>
</div>


<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js">  </script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.9.0/js/bootstrap-datepicker.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>
Vue.component('date-picker', {
  template: '<input type="text" class="form-control" placeholder="Enter the date" required>',
    mounted() {
        $(this.$el).datepicker({autoclose: true, format: 'yyyy-mm-dd', todayHighlight : true});
    }
})

new Vue({
      el: '#app',
      data: {
        date: null
      },
      methods: {
        setDate(){
            this.date = '2019-11-3'
        }
      }
    })
 </script>
</body>
</html>

, если вы нажмете на Изменить, он установит дату на входе, после этого, если вы нажмете на вход, а затем щелкните где-нибудь еще на странице, она очистится. вне поля.

Демо: http://rainfloods.com/test/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...