Javascript 为什么不渲染我的VUE数组元素,
我可以从后端发送元素。但是文本无法显示。我不知道为什么。 这是我的html:Javascript 为什么不渲染我的VUE数组元素,,javascript,vue.js,Javascript,Vue.js,我可以从后端发送元素。但是文本无法显示。我不知道为什么。 这是我的html: <!-- <form action=""> --> <div class=" form-group"> <input v-model="wd" @keyup="keyup($event)" type=&
<!-- <form action=""> -->
<div class=" form-group">
<input v-model="wd" @keyup="keyup($event)" type="text" class="form-control" />
<!-- <ul class="list-group"> -->
<table>
<tr>
<th v-for="item in title"><div style="width:500px">{{item}}</div> </th>
</tr>
<tr v-for="item in arr" :key='item'>
<td>{{item.name}}</td>
<td>{{item.sort}}</td>
<td>{{item.company}}</td>
</tr>
</table>
</div>
我知道已获取数据。因为循环中的项目数完全正确。当我使用console.log(res.data.list)时,我可以从后端查看数据。但它们不能显示在我的页面中。
如果你能帮助我,我将非常感激。谢谢!
我认为问题在于您在回调中引用了
这个.arr
。当AJAX调用返回时,此
的作用域是响应,而不是Vue对象
您可以通过在AJAX调用之前插入一个变量来克服这一问题,如下所示:
var vm = this;
axios.get(url, {
然后,在回调中,而不是this.arr=res.data.list代码>,请执行以下操作:
vm.arr = res.data.list;
我认为问题在于您在回调中引用了this.arr
。当AJAX调用返回时,此
的作用域是响应,而不是Vue对象
您可以通过在AJAX调用之前插入一个变量来克服这一问题,如下所示:
var vm = this;
axios.get(url, {
然后,在回调中,而不是this.arr=res.data.list代码>,请执行以下操作:
vm.arr = res.data.list;
字段数据
必须是被动的
data(){
返回{
wd:“”,
arr:[],
列表索引:-1,
标题:['name','sort','company'],
}
}
字段数据
必须是反应性的
data(){
返回{
wd:“”,
arr:[],
列表索引:-1,
标题:['name','sort','company'],
}
}
项目的值是多少?很可能,item.name
,item.sort
,item.company
返回undefined
,因此会呈现行,但不会插入内部文本。但我的浏览器中没有此类错误。我不确定是否错误。undefined不一定会引发错误。尝试将项的值记录到控制台。您看到了什么?项目的值是多少?很可能,item.name
,item.sort
,item.company
返回undefined
,因此会呈现行,但不会插入内部文本。但我的浏览器中没有此类错误。我不确定是否错误。undefined不一定会引发错误。尝试将项的值记录到控制台。你看到了什么?方法:{keyup(event){var am=this;var url=“/search/search/”axios.get(url,{params:{q:am.wd,})。然后(res=>{am.arr=res.data.list;
是这样吗?是我做的。它不起作用。这是不正确的。OP已经在使用箭头函数,所以保留了它。方法:{keyup(event){var am=this;var url=“/search/search/”axios.get(url,{params:{q:am.wd,}})。然后(res=>{am.arr=res.data.list;
是这样吗?我这样做了。但它不起作用。这是不正确的。OP已经在使用箭头函数,因此保留了这一点。对于顶级Vue应用程序实例,数据不必是返回对象的函数:对于顶级Vue应用程序实例,数据不必是返回对象的函数: