vue.js json对象数组作为数据

时间:2017-09-05 13:27:27

标签: json ajax vuejs2

aye伙计们!

我正在学习使用vue.js做些什么。不幸的是,我被困在了。我想要做的是向我的示例API发送请求,该请求使用简单的json格式对象进行响应。 我希望将此对象作为组件中的数据 - 但无论出于何种原因,它似乎都不会这样做。

Ofc我试图在stackoverflow上找到解决方案,但也许我只是盲目或者这就像其他人写的代码一样。我甚至在官方的vue网站上找到this example,但他们做的和我做的一样......我猜?

顺便说一句。当我在一个单独的文件中运行fetchData()函数时,它确实有效,我可以访问我从API获得的数据。没有代码的变化..只是没有围绕它的vue。我现在真的很困惑,因为我不知道错误是什么。

代码:

var $persons = [];

并在我的组件内:

data: {

  persons: $persons,
  currentPerson: '',
  modal: false

},


created: function() {

  this.fetchData()

},


methods: {

  fetchData: function () {

    var ajax = new XMLHttpRequest()

    ajax.open('GET', 'http://api.unseen.ninja/data/index.php')
    ajax.onload = function() {
      $persons = JSON.parse(ajax.responseText)
      console.log($persons[0].fname)
    }
    ajax.send()

  }

},

[...]

链接到the complete code

1 个答案:

答案 0 :(得分:2)

首先,确保@Override public void onReceive(Context context, Intent intent) { if (intent != null) { if (intent.getAction().equals(ACTION_BUTTON_REFRESH)) { //make some logic here on button refresh } else if (intent.getAction().equals(ACTION_BUTTON_SHARE)) { //make some logic here on button share } else { super.onReceive(context, intent); } } } 回调实际上正在触发。如果GET请求导致错误,onload将不会触发。 (在您的情况下,错误与CORS相关,请参阅@Pradeepb建议的this post)。

其次,您需要直接引用onload数据属性,而不是使用初始化persons的{​​{1}}数组。

它看起来像这样(在$persons方法内):

persons