layoutcomponent
には親子があります。送信時に検索コンポーネントの子コンポーネントをrouter-outlet
からリダイレクトしています。それは私の私がサービスを共有しているし、そこインタフェースas suggested hereであり、それが動作親から子コンポーネントを更新
onSubmit({ value }: {
value: Search
}) {
this.sharedData.searchStr = value.Search;
let urlSegments = this.router.url.split('/');
let lang = urlSegments[1];
let url = lang + '/search';
this.router.navigateByUrl(url);
this.searchval.reset();
}
を提出します。子コンポーネントで
import { Injectable, Inject } from '@angular/core';
export interface ISharedModel {
searchStr: string;
}
@Injectable()
export class SearchService {
sharedComponent: ISharedModel = {
searchStr: ''
};
constructor() { }
}
私はngOnInit
ngOnInit() {
this.sharedData = this.sharedResource.sharedComponent;
this.searchval = new FormGroup({
Search: new FormControl(this.sharedData.searchStr)
});
}
を持っており、それは、リダイレクトアプリケーションにそうhtmlページに
<form (ngSubmit)="onSubmit(searchval)" [formGroup]="searchval" >
<input type="text" placeholder="enter search string" formControlName="Search" class="form-control">
<button class="btn btn-primary">search</button>
</form>
を持って、このテキストボックスを埋めます。 これはすでに `mydomain.com/en/search 'にあり、親コンポーネントに検索文字列を入力すると子コンポーネントが更新されません。
どうすればよいですか?
があなたの子コンポーネントに@inputデコレータを使用しようとする必要がありますか?あなたのパラメータがこの入力変更を通過すると、イベントが広がり、正常に変更を適用できるはずです – qchap
私はそれを行うことができません。私が知っているように、コンポーネントのタグをどこかに持っていれば、入力パラメータを渡すことができます。しかし、私はそれを持っていません。私はルータでリダイレクトしています。私が正しくないと言ったら – gsiradze
私はあなたの事をよく理解していないと思います。あなたはあなたの問題をより正確に見るためにpklrなどを公開できますか?ありがとう。 – qchap