当你在地图或弱图上调用set
时,除非你在plnkr上,否则Angular不会接收更改
@Component({
selector: 'my-app',
template: `
<div>
<button (click)="onClick()">click</button>
{{ map | json }}
</div>
`,
styles: [`
`]
})
export class AppComponent {
map = new Map();
onClick () {
this.map.set({'a':Math.random()}, {[Math.random()]: {'a':Math.random()}})
console.log(this.map);
}
}
这段非常简单的代码将在 Plunkr 中按预期更新https://plnkr.co/edit/xbn82sr8KK0oe4WjCX1m?p=preview
但是在本地,在通过 @angular/cli 新创建的项目中,它将无法正常工作控制台日志显示地图正在设置为,但屏幕仅呈现空数组。
添加 ChangeDetectorRef 并detectChanges
或markForCheck
不会执行任何操作。
回购在这里:https://github.com/cheapsteak/ng-debug-map/blob/master/src/app/app.component.ts
找到了解决方案...在polyfills.ts
中,添加
import 'core-js/shim';
朝向文件顶部