从自定义字段更新同级输入字段

问题描述 投票:0回答:1

我正在使用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

laravel vue.js laravel-nova
1个回答
0
投票

您可能想要发出一个事件并改为在其有效负载中传递数据

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

并且听同胞的事件并相应地更新

使用心理技巧来模仿兄弟姐妹

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

希望这会有所帮助

© www.soinside.com 2019 - 2024. All rights reserved.