@myskypesla

Как передать значение переменной в компонент?

Есть вот такой App.vue:
<div id="app">
  <input type="text" v-model="person" placeholder="Введите имя" @keyup.enter="onKeyUp">
  <router-view></router-view>
</div>

export default {
  name: 'app',
  data () {
    return {
      person: '',
      accountId: '',
      name: '',
      age: '',
      resourceUrl: '',
      resourceInfo: ''
    }
  },
  methods: {
    onKeyUp: function () {
      this.$Progress.start()

      let resourceUrl = 'ссылка на ПЕРВЫЙ json из api в котором есть имя и id'

      this.$http.get(resourceUrl).then(function (response) {
        this.name = response.data.name // берём имя из ПЕРВОГО файла json
        this.accountId = response.data.account_id // берём id из ПЕРВОГО файла json

        let accountId = this.accountId

        let resourceInfo = 'ссылка на ВТОРОЙ json из api в котором лежит информация, которую получаем по accountId' + accountId

        this.$http.get(resourceInfo).then(function (response) {
          this.age = response.data.age // забираем из ВТОРОГО json возраст
        })
      })
    }
  }
}


И есть компонент Hello, который является маршрутом:
<div class="hello">
    <div v-if="name">
      <h1>Имя из ПЕРВОГО json: {{ name }}</h1>
      <h2>Возраст из ВТОРОГО json: {{ age }}</h2> 
    </div>
    <div v-else>
      <h1>Введите ваше имя</h1>
    </div>
  </div>


Нужно сделать чтобы при вводе в input имя человека, запрос отправлялся в базу, затем шел переход к маршруту Hello и в нём заполнялось name и age.

Когда у меня код маршрута Hello находиться в App.vue то всё работает, а как только я этот код оставляю в компоненте Hello, то ничего не работает, скорее всего из-за того что пока что этого маршрута не существует.

Помогите пожалуйста разобраться?
  • Вопрос задан
  • 237 просмотров
Решения вопроса 1
kulakoff
@kulakoff Куратор тега Vue.js
Vue.js developing
Вам нужно добавить маршрут, который будет отображать компонент Hello. И далее перейти на этот маршрут после получения данных, вызвав router.push.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы