当前位置: 首页 > 知识库问答 >
问题:

Angular2 找不到类型为“字符串”的不同支持对象。NgFor 仅支持绑定到数组等可迭代对象

戈正初
2023-03-14

    this.paramsSub = this.activatedRoute.params.subscribe(params => this.categories = params['obj']);
this.paramsSub = this.activatedRoute.params.subscribe(params => this.userInfo = params['usr']);

数据以这种方式发送:

this.router.navigate(['/path/obj', {obj: this.categories, usr: this.userInfo}]);

我试图在html中用*ngFor显示类别,如下所示:

<div *ngFor="let category of categories">
        <input type="checkbox" value={{category.id}}/> {{category.name}} 
    </div>

我的错误:

 Cannot find a differ supporting object '[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]' of type 'string'. NgFor only supports binding to Iterables such as Arrays.

我去另一个视图不错,但是IDK为什么我的错误,如果我尝试:JSON.parse错误更改为

Unexpected token o in JSON at position 1
Error: Error in :0:0 caused by: Unexpected token o in JSON at position 1

我一直在阅读有关该错误的信息,看起来我不需要解析,所以我非常困惑。

帮帮忙,谢谢!

这是转到另一个视图之前的数据。

共有1个答案

尹乐邦
2023-03-14
this.router.navigate(['/path/obj', {obj: JSON.stringfy(this.categories), usr: JSON.stringfy(this.userInfo)}]);

这意味着现在你可以没有任何担心的对象!:)

this.paramsSub = this.activatedRoute.params.subscribe(params => this.categories = JSON.parse(params['obj']));
this.paramsSub = this.activatedRoute.params.subscribe(params => this.userInfo = JSON.parse(params['usr']));

您可以选择进行解析,这不是必需的,因为它已经是JSON格式。它将为您解析。[自动]:)

 类似资料: