2017-08-12 1 views
2

私はプロジェクトでvuejs-datepickerコンポーネントを使用していますが、私は独自のdatePickerを作成し、vuejs-datepickerをミックスインとして挿入することを決めました。ソリューションは正常に動作しますが、オーバーライドされたメソッドの中で親メソッドを呼び出す方法を探しています。それは私のコンポーネントは、今のところどのように見えるかです:Vue.js mixinsはオーバーライドされた実装で親メソッドを呼び出します

import Datepicker from 'vuejs-datepicker' 

    export default { 
    props: { 
     /** 
     * My custom property startDate to open a calendar on the given date by default 
     */ 
     startDate: { 
     validator: function (val) { 
      return val === null || val instanceof Date || typeof val === 'string' 
     }, 
     default: new Date() 
     } 
    }, 

    mixins: [ Datepicker ], 

    methods: { 
     /** 
     * I override parent method setPageDate to read default startDate when none is specified 
     */ 
     setPageDate (date) { 
     // my code to set default date from the property 
     if (!date) { 
      date = this.startDate 
     } 

     // this part is the same as in the original method 
     this.pageDate = new Date(date.getFullYear(), date.getMonth(), 1, date.getHours(), date.getMinutes()).getTime() 
     } 
    } 
    } 

コピーしたコードは1行だけでは大したことはありませんが、私は、私は将来的に複数のメソッドをオーバーライドする必要が期待しています。だから私は実装の中でその親メソッドを呼び出すための最良の方法を探しています。this.parent(date)またはthis.super(date)のようなものです。まったく可能ですか?

答えて

4

superなどはありません。あなたはこのような何かを行うことができます:確かに

setPageDate (date) { 
    // my code to set default date from the property 
    if (!date) { 
     date = this.startDate 
    } 

    Datepicker.methods.setPageDate.call(this, date) 
    } 
+0

、無地のJSソリューションが正常に動作しますが、私は多分思っVue.jsは何か他のものを提供します。ありがとうございました! – ConstantineUA

関連する問題