Vue.js laravel 5.8中的Vue,从axios响应动态填充表格
我有一个刀片,我使用multiselect作为下拉列表,当选择一个选项时,它会触发一个axios调用,返回一个json_编码的数据集 刀片在这里:Vue.js laravel 5.8中的Vue,从axios响应动态填充表格,vue.js,laravel-5.8,Vue.js,Laravel 5.8,我有一个刀片,我使用multiselect作为下拉列表,当选择一个选项时,它会触发一个axios调用,返回一个json_编码的数据集 刀片在这里: <div class="uk-width-1-2"> <multiselect label="name" track-by="value" v-model="CategoryValue
<div class="uk-width-1-2">
<multiselect
label="name"
track-by="value"
v-model="CategoryValue"
:options="CategoryOptions"
:multiple="false"
:taggable="true"
@tag="getItems"
@input="getItems"
@search-change="val => read(val)"
:preselect-first="false"
:close-on-select="true"
:preserve-search="true"
placeholder="Choose Category..."
></multiselect>
<div style="border:1px solid black; height:80%; margin-top:15px;">
<table>
<thead>
<tr>
<th>Text</th>
</tr>
</thead>
<tbody v-for="build in buildsList">
<tr>
<td>@{{ build.build_code_formatted }}</td>
</tr>
</tbody>
</table>
</div>
</div>
new Vue({
data() {
return{
buildsList: {},
}
},
methods: {
getItems() {
console.log(this.CategoryValue.value);
axios.post('/getItems',{
categoryCode: this.CategoryValue.value,
})
.then(function (response){
this.buildsList = response.data;
})
.catch(function (error) {
console.log(error);
});
}
}
})
itemService正在这样做:
$results = $pdoStatement->fetchAll();
foreach ($results as &$r)
$r = (object) $r;
return $results;
因此,我的数据在axios调用时返回,并且格式正确,但我只需要弄清楚为什么我的表没有动态填充,请尝试更改此部分
this.buildsList = response.data;
到
这不起作用,它是这样说的。$set不是一个函数对不起,我忘记了箭头函数。添加修复请再试一次,对吗。谢谢你,结果出来了,但是,它只排了一行,而不是我在数组中得到的33行。为什么它只显示一行呢?我在这一行中修改了这个$set(this.buildsList,key,data[key]);请再核对一下我的答案
this.buildsList = response.data;
.then((response) => {
let data = response.data;
for (let key in data) {
if(data.hasOwnProperty(key)) {
this.$set(this.buildsList, key, data[key]);
}
}
})