繁体   English   中英

Angular 2使用模板内的已知键从地图访问值

[英]Angular 2 Access value from map using known key inside template

如果我知道密钥并像map[key]一样获取它并尝试myMap.get(key) ,如何从 map 中获取价值。

可能与使用 *ngForhttps://stackoverflow.com/a/45233924/1225526的对象的访问键和值重复

但是我的场景有一个小变化,我知道关键,我有这样的地图:

priority: Map<number, string> = new Map<number, string>();

ngOnInit() {
    this.priority.set(1, Packages.PRIORITY_TYPES.highest);
    this.priority.set(2, Packages.PRIORITY_TYPES.high);
    this.priority.set(3, Packages.PRIORITY_TYPES.medium);
    this.priority.set(4, Packages.PRIORITY_TYPES.low);
    this.priority.set(5, Packages.PRIORITY_TYPES.info);
}

我正在尝试在我的模板中获取值,例如{{priority[item.priority]}}这里item.priority具有键值

<span [ngClass]="'baseline-text-'+ priority.get(item.priority)">
  {{priority[item.priority]}}</span>    <-- looks like wrong syntax i am not getting the value in my html

任何帮助都会很棒。

与您在跨度课程中获得它的方式相同,您必须这样做:

{{ priority.get(item.priority) }}

写一个这样的管道:

import {Pipe, PipeTransform} from '@angular/core';
@Pipe({
  name: 'mapValue'
})
export class MapValuePipe  implements PipeTransform{
  transform<K,V>(map: Map<K,V>,key: K): V {
    return map.get(key);
  }
}

如果您想在 tempate 中获取键的值:

{{aMap |mapValue:'a key'}}

如果你想使用 ngFor 来迭代键或值,你可以写一个像上面这样的管道。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM