値0を保持するValueServiceというサービスがあります。 次に、navコンポーネントと見出しコンポーネントがあります。 valueServiceの値は、クリック時の見出しビューを更新しません。私は角2のものを初めて使っているので、これをどうやって動かすかはわかりません。ここまで私がこれまで持っていたことがあります。ご協力いただきありがとうございます。コンポーネントテンプレート角2:サービス変数とビューの更新
を見出し
価値サービス
import { Injectable } from '@angular/core';
import { Observable } from 'rxjs/Rx';
@Injectable()
export class ValueService {
value:number;
constructor() {
this.value = 0;
}
goTo(value){
this.value = value;
console.log('value in service', this.value);
}
ナビゲーションコンポーネントテンプレートは
<button *ngFor="let d of array | keys; let i = index" (click)="valueService.goTo(i)"> {{ i }} </button>
問題はここにあります。私は、navコンポーネントからボタンのインデックスによって選択されたh3を表示したいだけですが、何らかの理由でデフォルト値の0に設定されたままで、値は更新されません。
<h3 *ngIf="i==valueService.value" *ngFor="let d of array | keys; let i = index"> {{ text here }} </h1>
まあ、valueServiceへの参照は大丈夫だと思います。それ以外の場合は、例外が発生する可能性があるからです。あなたはおそらくそのコンポーネントまたはその親の1つのChangedetectionstrategyを変更しましたか? – Matthias247
いいえ、私はそれをしませんでした。私は何らかの理由で、コンポーネントの兄弟が新しい値で更新されていないと考えています。 – LadyT