共有サービスを使用して兄弟通信をセットアップしようとしています。共有サービス内のコンポーネントの関数呼び出し
親コンポーネント:
import { SerializationService } from './serialization/serialization.service';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css'],
providers: [SerializationService]
})
export class AppComponent implements OnInit {
//irrelevant body
}
シェアードサービス:
import { Injectable } from '@angular/core';
import { WorkspaceSerializer } from './WorkspaceSerializer';
@Injectable()
export class SerializationService {
serialize() {
//NEED TO CALL getData() IN DataComponent!!!
}
}
2つの兄弟コンポーネント:
//Toolbar component:
import { SerializationService } from '../serialization/serialization.service';
@Component({
selector: 'toolbar-component',
templateUrl: './toolbar.component.html',
styleUrls: ['./toolbar.component.css']
})
export class ToolbarComponent {
constructor(private serializationService : SerializationService) { }
serialize() {
this.serializationService.serialize();
}
}
//Data Component:
import { SerializationService } from "../serialization/serialization.service";
@Component({
selector: 'pixi-component',
templateUrl: './pixi.component.html',
styleUrls: ['./pixi.component.css'],
})
export class DataComponent {
private data : String;
constructor(private operationService: OperationService,
private serializationService : SerializationService
){}
getData() : String {
return this.data;
}
}
あなたがすることができます私はあなたに関連するコンポーネントを示すことから始めましょうToolbarComponent
は、の機能をと呼びます。このサービスではシリアル化するデータが必要なので、getData()
関数をから呼び出して返す必要があります。どちらのコンポーネントもAppComponent
の子(兄弟です)です。
どうすればいいですか?
私は本当にこれが好きです。特に、 '(click)=" serialize(dataComponent.getData()) "'という行は、要求に応じて必要なデータを取得します。ありがとうございました – JavascriptLoser