Angular 7 - 布尔值始终为真

我在 Angular 7 中有一个布尔值,我用它在对象构造函数中设置一个值。布尔值作为参数传递,我将其存储在本地。


但是,由于某种原因,布尔值总是评估为真。


这是有问题的代码:


  ngOnInit() {

    this.id = this.route.snapshot.params['id'];

    this.showPersonal = this.route.snapshot.params['showPersonal'];

    console.log("ngOnInit, this.id: " +  this.id);

    console.log("ngOnInit, this.showPersonal: " +  this.showPersonal);

    // if showPersonal is true, workRelated i.e. last item in constructor, is false


    if (this.showPersonal){

      console.log("showPersonal is true, setting work related to false")

      this.showWorkRelated = false;

    }

    else {

      console.log("showPersonal is false, setting work related to true")

      this.showWorkRelated = true; 

    }


console.log("this.showWorkRelated: " + this.showWorkRelated)

这是输出:


todo.component.ts:28 ngOnInit, this.showPersonal: false

todo.component.ts:32 showPersonal is true, setting work related to false

todo.component.ts:40 this.showWorkRelated: false

我尝试了很多不同的方法,但它总是评估为真。这段代码有什么问题?


精慕HU
浏览 174回答 1
1回答

慕工程0101907

看起来您this.route.snapshot.params['showPersonal']返回一个字符串,false因此将if (this.showPersonal)其视为 true。您应该尝试使用typeof this.showPersonal以查看变量是哪种类型。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript