htmlコンポジションで非同期オブジェクトを使用するのに苦労しています。次のように未定義のangle2のプロパティ 'version'を読み取ることができません
export class Version {
isGood: boolean;
constructor(isGood: boolean) {
this.isGood= isGood;
}
}
このモデルは、コンポーネントによって呼び出されます:バージョン変数へ
@Injectable()
export class MyComponent {
public version: Version;
constructor(private _myService: VersionService) {}
getVersion(): void {
// async service that gets the versions
this._myService.getVersion().subscribe(
data => this.version= data,
error=> console.log(error),
() => console.log("getting all items complete")
);
}
}
マイテンプレート参照を次のようにここで
は私のモデルである<button (click)="getVersion()">Get Version</button>
<hr>
<p style="color:red">{{error}}</p>
<h1>Version</h1>
<p>{{version.isGood}}</p>
ただし、例外が発生します。
Cannot read property 'isGood' of undefined
インターネットを掃除することから、私の問題はバージョンオブジェクトがヌルであることがわかります。私のような何かを行う場合は、次の
<p>{{version | json}}</p>
を私は
<p>{{version.isGood | async}}</p>
ような何かをした場合、私はMyComponentのを編集し、
を設定した場合、私は何もを見ていない、正しいバージョン
を見ることができます
public version: Version = new Version();
.isGoodプロパティのフェッチを実行できますが、それは常に空です。
プロパティを非同期で使用している場合は、別の方法でプロパティをロードするはずですか?
申し訳ありませんが、これはどのように関連しているのでしょうか。私はTSコンポーネントではなくサービスを直接使用しています。 – angryip
コンポーネントシステムを修正しようとしました。 @Comjectableではなく@Injectable()を使用してコンポーネントを作成しています。 –
ああそうです。あなたは正しいです。私は今、それを変更しますか、私はどのくらいまで得るかを参照してください – angryip