【发布时间】:2017-11-06 21:24:49
【问题描述】:
很抱歉发布它,但我尝试了在网络上找到的所有解决方案。这似乎是一个常见的问题,但我就是无法让它工作。经过一整天的努力,我放弃了。这一定是个傻点,任何vue.js高手都会在几秒钟内找到点。任何帮助将不胜感激。
要点:我收到一些 JSON 并尝试使用收到的值更新我的页面,但字段为空。 jsonSettings.length 始终为 0。
我想我明白为什么:这肯定是因为数组上的“指针”没有改变,所以 vue.js 没有检测到内容的变化,或者类似的东西,但我就是不能让它工作它让我发疯。
我的 HTML:
<!DOCTYPE html>
<html>
<head>
<title>List</title>
<script src="/js/vue.min.js"></script>
<script src="/js/axios.js"></script>
</head>
<body>
<div id="app">
Message : {{ message }} <BR>
Length : {{ jsonSettings.length }} <BR>
Typeof : {{ jsonSettings.typeof }} <BR>
<button v-on:click="getData()">Load data</button>
<button v-on:click="printData()">Print data</button>
</div>
</body>
<script src="/javascripts/axios.js"></script>
</html>
我的 JavaScript:
var app = new Vue({
el: '#app',
data: {
message: 'Hello Vue!',
// jsonSettings: [],
},
methods: {
jsonSettings : function() {
return (
[
{ id: 0, resume: 'test 0'},
{ id: 1, resume: 'test 1'},
{ id: 2, resume: 'test 2'}
]
)
},
getData : function () {
axios.get('/axios/LoadAxiosData')
.then(function (response) {
this.jsonSettings = response.data;
this.message = "getData - I get objects : " + jsonSettings.length + " lines ";
this.$set('jsonSettings', response.data);
this.message = "getData - OK";
})
.catch(function (error) {
this.message = "getData - I get null";
});
},
printData: function () {
this.message = "printData - jsonSettings.length = [" + jsonSettings.length + "]";
jsonSettings.map((item, i) => console.log('Index:', i, 'Id:', item.resume));
}
}
})
再次抱歉,但我无法让它工作,因为这个愚蠢的点,我被困在河中间:-(
【问题讨论】:
-
Axios can't set data的可能重复
标签: arrays json binding vue.js axios