无法从对象数组中打印值

时间:2017-06-24 10:59:50

标签: vue.js

我在这里填写localStorage

let storageObj = {};
storageObj.date = (new Date().toLocaleString().replace(", ","T"));
storageObj.url = this.responseURL;
localStorage.setItem(storageObj.date, storageObj.url);

mounted()我正在迭代来自localStorage的所有数据,如:

for(let obj of Object.entries(localStorage))
{
    this.lastpasts.push(obj);
}

将每个对象放置到lastpasts(位于data() {lastpasts : []})。

在模板中,我只想打印url

<div class="ui divided items" v-for="el in lastpasts">
    <div class="item">
    {{el.url}}
     </div>
</div>

但是这段代码什么都不打印。仅限{{el}}。它在HTML块中打印:

[ "24.06.2017T11:55:10", "362e9cc5-e7e6" ]
[ "24.06.2017T12:26:47", "b0f9f20d-7851" ]

浏览器控制台没有任何错误。

1 个答案:

答案 0 :(得分:3)

在聊天会话中,我们设法解决了他的问题。

这是因为他使用的是数组而不是数组对象。由于Array只能用于索引,而不能用于字段名称,因此{{el.url}}无效。

LocalStorage获取值的代码必须更改为:

mounted() { 
  for(let obj of Object.entries(localStorage)) { 
    var x = {}; 
    x.url = obj[0]; 
    x.date = obj[1]; 
    this.lastpasts.push(x);    
  } 
}

现在,可以使用{{el.url}}