Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/437.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将数据从JS变量解析到Vue实例_Javascript_Json_Vue.js_Parsing - Fatal编程技术网

Javascript 将数据从JS变量解析到Vue实例

Javascript 将数据从JS变量解析到Vue实例,javascript,json,vue.js,parsing,Javascript,Json,Vue.js,Parsing,我是VueJS新手,有一个非常基本的问题。如果我有一个JS变量,并想将其解析为Vue实例数据部分,那么如何才能做到这一点?在下面的简单示例中,我想将变量“parsedJSON”解析为变量“test”中数据部分下的Vue实例“mainVue”: 在我的整个代码中,“parsedJSON”变量由来自mongoDB的JSON数据组成,可以很好地获取这些数据,但我似乎找不到将其解析到Vue实例中的方法。控制台中会显示正确的数据。您是否尝试过这样设置 data: { test: p

我是VueJS新手,有一个非常基本的问题。如果我有一个JS变量,并想将其解析为Vue实例数据部分,那么如何才能做到这一点?在下面的简单示例中,我想将变量“parsedJSON”解析为变量“test”中数据部分下的Vue实例“mainVue”:


在我的整个代码中,“parsedJSON”变量由来自mongoDB的JSON数据组成,可以很好地获取这些数据,但我似乎找不到将其解析到Vue实例中的方法。控制台中会显示正确的数据。

您是否尝试过这样设置

    data: {
        test: parsedJSON
    }

你试过这样设置吗

    data: {
        test: parsedJSON
    }

尝试此操作,在实例中获取:

let mainVue = new Vue({
  el: '#mainContent',
  data: function() {
    return {
        test: {}
    }
  },
  created() {
    fetch('...').then(function(response) {
      return response.json();
    }).then(function(data) {
      this.test = data;
    }.bind(this))
  }
})
还是更整洁一点

let mainVue = new Vue({
  el: '#mainContent',
  data: () => ({
    test: {}
  }),
  async created() {
    this.test = await fetch('...').then(res => res.json())
  }
})

尝试此操作,在实例中获取:

let mainVue = new Vue({
  el: '#mainContent',
  data: function() {
    return {
        test: {}
    }
  },
  created() {
    fetch('...').then(function(response) {
      return response.json();
    }).then(function(data) {
      this.test = data;
    }.bind(this))
  }
})
还是更整洁一点

let mainVue = new Vue({
  el: '#mainContent',
  data: () => ({
    test: {}
  }),
  async created() {
    this.test = await fetch('...').then(res => res.json())
  }
})


是的,这将与“正常”变量一起工作。问题是,在我的parsedJSON中,我从我的mongo db获取数据,它不允许我以这种方式解析数据。我将更改/更新上面的代码示例。啊,我现在明白了,在这种情况下,我认为另一个答案是正确的。是的,这将适用于“正常”变量。问题是,在我的parsedJSON中,我从我的mongo db获取数据,它不允许我以这种方式解析数据。我将更改/更新上面的代码示例。啊,我现在明白了,在这种情况下,我认为另一个答案是正确的。您应该在vue实例中获取,例如,是的,这就是我的想法。只是不知道如何做tbh。您应该在vue实例中获取,例如,是的,这就是我的想法。只是不知道怎么做,谢谢!这对我有用。我将查找beforeMount,因为我不熟悉this.np,感谢accept,也为了整理代码,您可以使用async/Wait和arrow funcs代替.bind(这取决于IE的支持,因为看起来不像您使用Transpilert,尽管IE中也没有fetch;再次感谢提示和答案。我只是看了一下,似乎我可以用“created”来代替beforeMount,对吗?要在创建实例后同步调用,那么如果测试是对象,请将其定义为数据中的对象。。测试:{}谢谢!这对我有用。我将查找beforeMount,因为我不熟悉this.np,感谢accept,也为了整理代码,您可以使用async/Wait和arrow funcs代替.bind(这取决于IE的支持,因为看起来不像您使用Transpilert,尽管IE中也没有fetch;再次感谢提示和答案。我只是看了一下,似乎我可以用“created”来代替beforeMount,对吗?要在创建实例后同步调用,那么如果测试是对象,请将其定义为数据中的对象。。测试:{}