ajax获取本地的json文件,取到数据之后赋值给data的listDatas,view页面更新了,但是computed和mounted里访问不到重新赋值后的listDatas,除了在$get()里能访问到重新赋值后的data,其他无论在哪都访问不到更新后的listDatas,访问到的都是初始值!
import classTitleTab from './classTitle.vue'
import comboListTab from './comboList.vue'
import Vue from 'vue'
import {store} from '../vuex/store.js'
import VueResource from 'vue-resource'
Vue.use(VueResource)
export default {
name: 'comboList',
data () {
return {
listDatas:[22,22],
}
},
store,
computed:{
//计算属性,给获取后的数据排序
hosDatas:function() {
let datas = [];
for(let i = 0; i < this.listDatas.length; i++){
for(var j = i + 1;j < this.listDatas.length; j++){
if(this.listDatas[i] > this.listDatas[j]){
let list = this.listDatas[i];
this.listDatas[i] = this.listDatas[j];
this.listDatas[j] = list
}
};
datas.push(this.listDatas[i])
};
return datas
}
},
//本地获取json数据
created:function() {
let that = this;
$.get("./src/static/datas.json",function(data){
for(let i = 0; i < data.length; i++){
that.listDatas.push(data[i])
};
alert(that.listDatas.length)//只有在这个作用域下才能访问到新的数据
});
alert(that.listDatas.length)//在这里访问就又变成了初始的值
},
mounted:function() {
alert(this.listDatas) //弹出的是初始值22,22;并不是ajax获取的值
},
components:{
classTitleTab,
comboListTab
},
}