【发布时间】:2020-04-05 13:27:10
【问题描述】:
我想在添加数据后使用组件 2 的 getProjects() 方法来刷新我的表。这两个组件都附加在一个blade.php中
组件1.vue
methods: {
addData() {
this.attemptSubmit = true;
this.validate = true;
this.errors = [];
if (this.errors) event.preventDefault();
axios
.post('/api/department', {
department: this.department,
section: this.section
})
.then(response => {
this.validate = false;
this.department = '';
this.section = '';
this.errors = '';
this.output = response.data;
//--- I want to insert the getProjects() method here
})
.catch(error => this.errors = error.response.data.errors)
},
组件2.vue
methods: {
getProjects(url = '/api/departments') {
this.tableData.draw++;
axios
.get(url, {params: this.tableData})
.then(response => {
let data = response.data;
if (this.tableData.draw == data.draw) {
this.projects = data.data.data;
this.configPagination(data.data);
}
})
.catch(errors => {
console.log(errors);
});
},
【问题讨论】:
-
为get项目创建单独的服务很好,你可以从两个组件中调用它。
-
你的意思是我应该把它分成另一个组件吗?我会有很多不同的表单,每个表单都有自己的数据表组件。
-
你看起来需要
mixin -
我检查了 mixin。在我看来,我需要为不同的表单创建不同的 mixin,因为每个表单都有不同的 axio.get URL。
-
您可以将该 url 作为参数传递 ....
标签: javascript laravel vue.js