4

我不知道爲什麼變更檢測在這裏不起作用。我已經嘗試了一些東西,包括setTimeout。我正在使用RC5。基本上我想根據URL中的參數改變內容。應該是非常簡單的權利?在Angular 2中訂閱ActivatedRoute參數不會更新視圖模板

thanks.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 
     } 
    ); 
    } 
} 

thanks.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> 

回答

3

PARAMS只能是字符串,因爲他們來自URL

如果將其更改爲

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

它應該w掃。