javascript - AngularJS的ng-repeat in line,逗号分隔,两个属性在同一行
问题描述
这是我的 JSON。
[
{
"site":"New York",
"players":[{"name":"Mike"},{"name":"Tom"}],
"journalists":[{"name":"Alice"},{"name":"Bob"}],
"managers":[]
},
{
"site":"Barcelona",
"players":[{"name":"James"},{"name":"Paul"}],
"journalists":[{"name":"John"}],
"managers":[{"name":"Kenny"},{"name":"Tim"}]
}
]
我想这样显示它:
New York:
- journlists: Alice, Bob
- players: Mike, Tom
Barcelona:
- journlists: John
- players: James, Paul
- managers: Kenny, Tim
假设我可以从范围 $scope.myJson 获取 json 数据。我不知道如何一起使用 ng-repeat 和 ng-show (不显示空数组)来实现这一点。
解决方案
您需要有多个 ng-repeats,因为您有多个数组。要隐藏空行,请使用带有 .length 的 ng-if
<div ng-repeat="item in myJson">
<h1>{{item.site}}:</h1><br />
<ul>
<li ng-if="item.journalists.length > 0">- journalists: <span ng-repeat="journalist in item.journalists">{{journalist.name}}<span ng-if="!$last">, </span></span></li>
<li ng-if="item.players.length > 0">- players: <span ng-repeat="player in item.players">{{player.name}}<span ng-if="!$last">, </span></span></li>
<li ng-if="item.managers.length > 0">- managers: <span ng-repeat="manager in item.managers">{{manager.name}}<span ng-if="!$last">, </span></span></li>
</ul>
</div>
推荐阅读
- typescript - 是否可以根据数组值强类型化对象的键?
- sql-server - 使用变量 vs varchar 在 datepart 中产生不同的结果
- typescript - 类型“{...}|{...}”上不存在属性“...”
- mysql - Mysql减法和求和
- html - 如何使垂直分隔线相等并在 CSS 中使用可变内容从同一顶部开始
- flutter - 颤振:列表视图在搜索时未更新
- sqlite - 如何从数据库初始化列表 (sqflite)
- swift - 单元测试 WKNavigationDelegate 函数 swift
- google-apps-script - Gmail API:使用 Google Apps 脚本从标签中删除所有电子邮件相当慢
- c# - 如何使用 3D 矩阵进行旋转?