Nano Hash - криптовалюты, майнинг, программирование

Возврат результата от наблюдателя - 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'.

18.07.2017

Ответы:


1

Просто добавьте новое свойство данных cancelBy:

data() {
  return {
    date: '',
    cancelBy: null,
  }
},

А затем установите это, когда асинхронный вызов вернется:

let vm = this;
this.$http.get(...).then(() => {
  ...
  vm.cancelBy = inAdvanceDate.format("YYYY-MM-DD, HH:mm:ss a");
}

И в вашем шаблоне вы можете сделать что-то вроде этого:

<div v-if="date !== ''">
  {{ date }}. 
  <span v-if="cancelBy !== null> 
    By {{ cancelBy }}
  </span>
</div>
18.07.2017
  • Это именно то, что я хотел. Благодарю вас! 18.07.2017
  • Почему вы изменили его на vm.cancelBy, а не только на this.cancelBy? 18.07.2017
  • Стрелочные функции иногда меняют контекст this, чтобы он больше не указывал на экземпляр Vue. Я не мог вспомнить, было ли это так в этом примере, поэтому я устанавливал ссылку на всякий случай. См. Использование этого во Vue 18.07.2017
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..