vue js ajax 调用无法读取未定义的 属性 'push'
vue js ajax call cannot read property 'push' of undefined
在将数据从数据库推送到网页时,我遇到了 vue.js 问题。我正在使用 laravel 5.3 将数据转换为 Jason。代码将要获取的记录数发布到服务器,然后服务器响应我要在网页上显示的数据。这是 Vue js 代码
new Vue({
el: "#projects",
data: {
count: 0,
fetched_projects: []
}
methods:{
checkproject: function(){
var fetch = this.count += 4;
axios.post('/loadmore', {fetch: fetch })
.then(function(response) {
this.fetched_projects.push(response.data);
})
.catch(function(error){
console.log(error);
});
}
HTML
<div class="row">
<div class="col-md-3">
<ul v-for="more_projects in fetched_projects">
<li>@{{ more_projects }}</li>
</ul>
</div>
</div>
Laravel 控制器
public function setloadMore(Request $request){
$new_projects = $request->fetch;
$results = Model1::with('relation')->take($new_projects)->get();
return $results;
}
问题出在 this.fetched_projects.push(response.data);
它给了我 "cannot read property 'push' of undifined"
您希望 this
成为您的组件,因此使用箭头函数:
methods:{
checkproject: function(){
var fetch = this.count += 4;
axios.post('/loadmore', {fetch: fetch })
.then(response => {
this.fetched_projects.push(response.data);
})
.catch(function(error){
console.log(error);
});
}
你有 "this" 问题,尝试在你定义 fetch 的地方定义类似 var that = this 的东西,并在 post 中使用它代替 this 应该可以工作。
在将数据从数据库推送到网页时,我遇到了 vue.js 问题。我正在使用 laravel 5.3 将数据转换为 Jason。代码将要获取的记录数发布到服务器,然后服务器响应我要在网页上显示的数据。这是 Vue js 代码
new Vue({
el: "#projects",
data: {
count: 0,
fetched_projects: []
}
methods:{
checkproject: function(){
var fetch = this.count += 4;
axios.post('/loadmore', {fetch: fetch })
.then(function(response) {
this.fetched_projects.push(response.data);
})
.catch(function(error){
console.log(error);
});
}
HTML
<div class="row">
<div class="col-md-3">
<ul v-for="more_projects in fetched_projects">
<li>@{{ more_projects }}</li>
</ul>
</div>
</div>
Laravel 控制器
public function setloadMore(Request $request){
$new_projects = $request->fetch;
$results = Model1::with('relation')->take($new_projects)->get();
return $results;
}
问题出在 this.fetched_projects.push(response.data);
它给了我 "cannot read property 'push' of undifined"
您希望 this
成为您的组件,因此使用箭头函数:
methods:{
checkproject: function(){
var fetch = this.count += 4;
axios.post('/loadmore', {fetch: fetch })
.then(response => {
this.fetched_projects.push(response.data);
})
.catch(function(error){
console.log(error);
});
}
你有 "this" 问题,尝试在你定义 fetch 的地方定义类似 var that = this 的东西,并在 post 中使用它代替 this 应该可以工作。