Обновить родственные поля ввода из настраиваемого поля - PullRequest
1 голос
/ 12 октября 2019

Я использую Laravel Nova и создал настраиваемое поле, которое получает информацию о компании через API-сервис. Это работает просто отлично. Я застрял, когда возвращаются данные компании, и я хочу заполнить остальные поля формы ресурса этими данными. Я почти у цели, но мои навыки Vue невелики.

Поэтому я создал метод Vue, который вызывается, когда пользователь выбирает компанию из поля выбора. Я могу отправить значения, но я не могу редактировать другие компоненты поля vue и, следовательно, не могу добавить прослушиватели. Можно ли обновить эти поля, просто передав данные из пользовательского поля?

fillInputFields (selectedCompanyData) {
    this.$parent.$children.forEach(component => {
         if (component.field !== undefined && component.field.attribute == 'name') {
              component.field.value = selectedCompanyData.name
         }
         if (component.field !== undefined && component.field.attribute == 'tax_number') {
              component.field.value = selectedCompanyData.cvr
         }
    })
},

enter image description here

1 Ответ

1 голос
/ 12 октября 2019

Вместо этого вы можете отправить событие и передать данные в его полезную нагрузку

fillInputFields(selectedCompanyData) {
    this.$parent.$emit("fill-company-data", {
        name: selectedCompanyData.name,
        cvr: selectedCompanyData.cvr
    });
}

И прослушать событие в братьях и сестрах и соответственно обновить

, используя психические навыки дляподражать братьям и сестрам

mounted() {
    this.$root.$on("fill-company-data", data => {
        this.name = data.name;
        this.tax_number = data.cvr;
    });
}

Надеюсь, это поможет

...