【发布时间】:2017-06-09 11:14:00
【问题描述】:
我在我的 laravel 项目中使用 vue.js。问题是 vue.js 正在渲染空数组,尽管我看到变量名称有一些数据。
我正在使用 laravel 5.4 和 vue.js2。对于 jsonp get 方法,我使用的是 vue-resource
此外,如果我想在模板中查看包含数据 {{names}} 的变量,它只会添加一个空数组。在这两种情况下都没有错误日志。
template.vue
<template>
<div class="container">
<div class="row">
<div class="col-md-8 col-md-offset-2">
<div class="panel panel-default">
<div class="panel-body">
{{names}}
</div>
</div>
</div>
</div>
</div>
</template>
Js
<script>
export default {
data: function(){
return {
names: []
};
},
methods: {
getData: function(){
var self = this;
// GET request
this.$http.jsonp(url, {jsonpCallback: "JSON_CALLBACK"})
.then(response=>{
return response.body;
})
.then(data =>{
self.names = data
console.log(JSON.stringify(self.names))// logs the data
})
}
},
mounted() {
this.getData()
console.log('Component mounted.')
}
}
</script>
blade.php
<search id='search'>
</search>
JSON 响应如下所示
[
{
"uri":"http://en.wikipedia.org/wiki/Samsung",
"id":"24366",
"type":"org",
"score":527013,
"label":{
"eng":"Samsung"
}
},
{
"uri":"http://en.wikipedia.org/wiki/Samsung_Electronics",
"id":"30860",
"type":"org",
"score":135216,
"label":{
"eng":"Samsung Electronics"
}
}
]
【问题讨论】:
-
这个记录了什么? console.log(JSON.stringify(self.names),还是根本不记录?
-
@John 是的,这个记录了 JSON 响应。这就是为什么我知道数据在那里。
-
你有 vue devtools 吗? names 变量在那里显示结果?
-
@John 是的,它确实看到了上面的图片
-
您的模板和组件脚本在同一个文件中是吗?
标签: javascript laravel vue.js vuejs2 laravel-5.4