【发布时间】:2020-11-23 09:31:18
【问题描述】:
我有两个 Vue.js 组件。我为一个表单创建了两个单独的组件,以避免混乱和复杂的代码结构。我想结合这两种形式的数据,以便将其发送到服务器。这是我的刀片文件,其中包含两个组件。一是 StudentComponent.vue,二是 TeacherComponent.vue。
@extends('layouts.app')
@section('content')
<div class="main-content" id="panel">
<main class="col-12 col-md-8 col-xl-7 py-md-3 pl-md-5 ct-content" role="main">
<div id="app">
<teacher-component :foods_array="{{ json_encode($foods) }}"></teacher-component>
<student-component :foods_array="{{ json_encode($foods) }}"></student-component>
</div>
</main>
</div>
@endsection
请记住,这些组件(StudentComponent 和 TeacherComponent)层次结构没有父子组件关系。我的目标是从教师组件获取数据到学生组件。我怎样才能实现这个目标?
我的 StudentComponent.vue
<template>
<div>
<div class="card" style="width: 172%;">
<!-- Form Fields -->
</div>
</div>
</template>
<script>
export default {
props : {
foods_array: {
type: Array,
required: true
}
},
beforeMount: function () {
this.foods = this.foods.concat(this.foods_array);
},
data() {
return {
student: {
email: '',
name: '',
roll_number:null,
food: null,
checked: []
},
foods: [{ text: 'Select One', value: null }],
show: true
}
},
methods: {
onSubmit(evt) {
evt.preventDefault()
axios.post('api/food/store'{student:JSON.stringify(this.student),role:'student'})
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
},
}
}
</script>
我的 TeacherComponent.vue
<template>
<div>
<div class="card" style="width: 172%;">
<!-- Form Fields -->
</div>
</div>
</template>
<script>
export default {
props : {
foods_array: {
type: Array,
required: true
}
},
beforeMount: function () {
this.foods = this.foods.concat(this.foods_array);
},
data() {
return {
teacher: {
email: '',
name: '',
department:'',
food: null,
checked: []
},
foods: [{ text: 'Select One', value: null }],
show: true
}
},
methods: {
onSubmit(evt) {
evt.preventDefault()
axios.post('api/food/store'{student:JSON.stringify(this.student),role:'teacher'})
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
},
}
}
</script>
【问题讨论】:
标签: javascript php html laravel vue.js