【发布时间】:2020-03-11 05:55:22
【问题描述】:
我试图显示一个对象数组。
这就是我进入组件的方式
getFiles(){
this.fileService.getFileList().subscribe(res => {
this.files = res;
console.log(this.files);
})
}
为我服务
getFileList() {
return this.http.get(`http://localhost:4001/files`)
}
this.files 的输出是:
> {secret: Array(2)} secret: Array(2) 0: files: (2) ["file1.pdf",
> "file2.pdf"]
> __proto__: Object 1: {pass: "88VpGQAtNB"} length: 2
> __proto__: Array(0)
> __proto__: Object
JSON.stringify 给了我输出
stringify gave me {"secret":[{"files":["46544556_2.pdf","org_46544556_2.pdf"]},{"pass":"hoc1WpNj63"}]}
如何遍历这个对象数组?
<li *ngFor="let file of files" >
{{file}}
</li
这给了我错误:
错误错误:找不到不同的支持对象“[object Object]” '对象'类型。 NgFor 仅支持绑定到 Iterables,例如 数组。
有我的后台
app.get('/files', function (req, res) {
let folder = app.get('filePath');
const filesInDir = fs.readdirSync(folder, {
withFileTypes: true
})
.filter(item => !item.isDirectory())
.map(item => item.name)
res.send({
secret: [{ files: filesInDir }, { pass: password }],
})
return console.log('files from tmp dir: ' + filesInDir)
});
【问题讨论】:
-
错误信息明确表示你的响应不是数组。您可以尝试
console.log(JOSN.stringify(this.files))并在此处发布您的问题吗? -
@Manish stringify 给了我 {"secret":[{"files":["46544556_2.pdf","org_46544556_2.pdf"]},{"pass":"hoc1WpNj63"}]}
-
您可以根据您的响应结构的方式相应地更新您的
this.files,应该像这样分配this.files = res.secret[0].files。试试这个,它会解决你的问题。 -
@Manish 仍然错误:“对象”类型上不存在属性“秘密”
-
您是否可以在 stackblitz 上创建一个可重现的错误演示。将能够提供更好的帮助
标签: javascript node.js angular