【发布时间】:2018-08-02 16:19:26
【问题描述】:
我有一张看起来像这样的地图:
let mapToSearch =
{
'aaa': '123',
'bbb': '456'
}
我有一个变量:
let keyToFind = 'aaa';
在我的 HTML 模板中,在 Angular *ngIf 块中,我想检查 keyToFind 是否与此映射中的任何键匹配。
类似 JS array.indexOf():
<ng-container *ngIf="mapToSearch.indexOf(keyToFind)">
Hello world
</ng-container>
模板中的地图可以做到这一点吗?
更新(包括解决方案)
感谢您的所有回答。您的所有答案都适用于使用对象文字(这是我的错误 - 我应该在问题中以不同的方式声明地图)。
但是,对于 ES6 映射,我发现我可以在模板中使用 map.has(key)。
用map.set()声明地图:
let mapToSearch = new Map();
mapToSearch.set('aaa', '123'};
mapToSearch.set('bbb', '456'};
模板:
<ng-container *ngIf="mapToSearch.has(keyToFind)">
Hello World
</ng-container>
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map/has
【问题讨论】:
-
是的,通常你会在 .ts 文件中调用一个方法
-
mapToSearch 实际上只是一个对象,而不是地图
标签: angular ecmascript-6 angular-ng-if