0
私はVue JSのウォッチャーから得た結果を返す必要があります。ウォッチャーからの返信結果 - Vue JS
これはコンポーネントの一部です。
<template>
<input name="date" v-model="date" id="date-picker">
<div class="alert alert-info" role="alert">
You must cancel {{ trip.in_advance }} days in advance from
<div v-if="date !== ''">
{{ date }}.
By {{ I need to display the result returned from the 'date' watcher here }}
</div>
<div v-else>
your selected booking date.
</div>
</div>
</template>
<script>
import moment from "moment";
import VueMomentJS from "vue-momentjs";
Vue.use(VueMomentJS, moment);
export default{
props: ['trip', 'user'],
data() {
return {
date: ''
}
},
watch: {
date() {
this.$http.get('/trip/dates/'+this.trip.id, this.$data).then(() => {
// Get the selected date, and format it
let bookingDate = moment(this.date).format("YYYY-MM-DD, HH:mm:ss a");
// Get the selected date, and subtract the "in advance" date from trip
let inAdvanceDate = moment(bookingDate).subtract(this.trip.in_advance, 'days');
let cancelBy = inAdvanceDate.format("YYYY-MM-DD, HH:mm:ss a");
console.log(cancelBy);
}, (response) => {
console.log(response);
});
}
}
}
</script>
私がconsole.log(cancelBy)を実行すると、いくつかの日付が取得され、テンプレートに表示する必要があります。テンプレートに必要な箇所にコメントを挿入しました。私はちょうど{{date()}}、{{date}}を使ってみましたが、必要な変数 'cancelBy'を取得できませんでした。
それは私が欲しかったものです。ありがとうございました! – David
なぜthis.cancelByではなくvm.cancelByに変更しましたか? – David
矢印関数は時には 'this'のコンテキストを変更し、もはやVueインスタンスを指していないようにします。この例ではそれが覚えていないので、私は安全のためだけにリファレンスを設定していました。 [Vueでこれを使用する](https://stackoverflow.com/documentation/vue.js/9350/using-this-in-vue#t=201707181402413617476) – thanksd