未捕获分配给复选框更改的布尔值上的 ngOnChanges

ngOnChanges on boolean assigned to checkbox change not caught

在 html 中,我有带有两种数据绑定的复选框输入:

<label class="switch">
    <input type="checkbox" [(ngModel)]="mode">
    <span class="slider round"></span>
</label>
{{ mode }}

在 component.ts 我想在模式改变时改变路线。为此,我尝试使用 ngOnChanges 模块监听模式更改。我的代码是:

import { Component, OnInit, OnChanges, Input, SimpleChanges } from '@angular/core';
import { Router } from '@angular/router';

@Component({
    selector: 'app-modes',
    templateUrl: './modes.component.html',
    styleUrls: ['./modes.component.scss']
})

export class ModesComponent implements OnInit, OnChanges {
    @Input() mode: boolean;
    constructor(private router: Router) { }

    ngOnInit() { }

    ngOnChanges(changes: SimpleChanges) {
        console.log(changes);
        this.router.navigate(['/dark']);
    }
}

但是 ngOnChanges 从未执行过,尽管通过插值我可以看到模式正在改变。它从不安慰任何东西,但它应该安慰对象。

根据你的代码,没有问题,除了你如何使用 app-modes,它应该是这样的:

<app-modes [mode]='mode'></app-modes>

WORKING DEMO