angular - Angular 2+ - ng-repeat 似乎不起作用,但 {{ var }} 可以
问题描述
我正在尝试ng-repeat
使用它作为参考来循环使用 JSON 对象。我目前拥有的是:
<mat-card-content>
<p>{{ selected.items }}</p>
<p>{{ selected.items["0aa60412-a62b-4967-8c9e-b12764df6a9d"].itemName }}</p>
<ul>
<li ng-repeat="item in selected.items">{{ item.itemName }}</li>
</ul>
</mat-card-content>
其中第二个<p>
使用返回的第一个条目的硬编码 ID
<p>
标签有效,但<li>
无效,它只有一个没有内容的项目符号(其中对象有 16 个项目)。控制台给出错误TypeError: Cannot read property 'itemName' of undefined
。
JSON 对象的格式如下:
{
"0aa60412-a62b-4967-8c9e-b12764df6a9d": { itemName: "value", [...] },
[...]
}
其他也失败的尝试包括:
<li ng-repeat="(key, value) in selected.items">{{ key }}</li>
我在这里做错了什么?
解决方案
这似乎是我刚接触 Angular 的一个问题。基本上ngRepeat
不推荐这个。此外,ng-repeat
AngularJS 的一个特性但不是 Angular,这显然是不同的东西。有了这个,就解决了。
由于您不能使用ng-repeat
,因此另一种方法是将对象更改为数组并*ngFor
像这样使用:
<li *ngFor="let item of selected.items">{{ item.itemName }}</li>
要从对象转换为数组,请参阅此答案:
return Object.keys(retItems).map(function(idx) {
return retItems[idx];
});
推荐阅读
- c# - 在构建 NuGet 包时,VS 会假装 csproj 文件中的元素,例如
和 不存在 - c# - 添加 requestscopes 方法后,Google 登录卡住了
- python - python - 带条件的while循环
- sql - 更改连续行值
- javascript - 循环对象数组和格式值
- reactjs - 如何在上下文中使用 JWT 令牌使查询无效?
- javascript - 任务“:react-native-community_masked-view:parseReleaseLibraryResources”执行失败
- python - 使用 pip 安装我的包后如何运行另一个命令?
- python - Jupyter Lab 停止、忽略导入的包和内核失败
- javascript - 如何使用 setAttrubute 添加多功能?