我正在使用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
}
})
},
您可能想要发出一个事件并改为在其有效负载中传递数据
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;
});
}
希望这会有所帮助