【问题标题】:Subscribing to ActivatedRoute Params in Angular 2 does not update view templates在 Angular 2 中订阅 ActivatedRoute 参数不会更新视图模板
【发布时间】:2017-01-10 05:10:22
【问题描述】:

我不确定为什么更改检测在这里不起作用。我尝试了一些东西,包括 setTimeout。我正在使用 RC5。基本上我想根据我的 URL 中的参数更改内容。应该很简单吧?

谢谢.ts

import { Component } from '@angular/core';
import { Card } from '../../components/card/card';
import { ActivatedRoute } from '@angular/router';

@Component({
  selector: 'sd-thanks',
  styleUrls: ['thanks.css'],
  directives: [Card],
  templateUrl: 'thanks.html'
})
export class Thanks {
  params: any;
  coming: any;
  constructor(public route: ActivatedRoute) {
    this.params = this.route.params.subscribe(
      params => {
        this.coming = params['coming'];
        console.log(this.coming); // this consoles the correct true/false value
      }
    );
  }
}

谢谢.html

<card>
  <div *ngIf="coming" class="card-content">
    <span class="card-title">We can't wait to see you!</span>
  </div>
  <div *ngIf="!coming" class="card-content">
    <span class="card-title">We will certainly miss you!</span>
  </div>
</card>

【问题讨论】:

    标签: javascript angular angular2-routing angular2-changedetection


    【解决方案1】:

    参数只能是字符串,因为它们来自 URL

    如果你改成

    this.coming = params['coming'] && params['coming'].toLowerCase() === 'true';
    

    它应该可以工作。

    【讨论】:

      猜你喜欢
      • 2021-06-28
      • 1970-01-01
      • 2019-06-05
      • 2018-01-24
      • 2019-01-20
      • 2018-08-05
      • 2016-08-23
      • 2017-04-03
      • 1970-01-01
      相关资源
      最近更新 更多