0
我試圖使用共享服務設置兄弟通信。從共享服務中調用組件的功能
父組件:
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!!!
}
}
兩個兄弟組件:
//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
調用的serialize()
函數。該服務需要一些數據序列化,因此需要調用DataComponent
中的getData()
函數並捕獲它的返回。這兩個組件都是AppComponent
(他們是兄弟姐妹)的子女。
我該怎麼做?
我真的很喜歡這個,特別是''(click)=「serialize(dataComponent.getData())'''來獲得所需的數據。謝謝 – JavascriptLoser