Angular [禁用]:通过另一个组件更改属性的值
只要属性Angular [禁用]:通过另一个组件更改属性的值,angular,typescript,Angular,Typescript,只要属性callToActionBtn为true,我的按钮就应该被禁用 匹配组件.html 您不应该在其他组件中编辑组件属性。 创建专用服务: class ExampleService { callToActionBtnSubject = new BehaviorSubject<boolean>(false); setCall(value: boolean): void { this.callToActionBtnSubject.next(value); }
callToActionBtn
为true,我的按钮就应该被禁用
匹配组件.html
您不应该在其他组件中编辑组件属性。
创建专用服务:
class ExampleService {
callToActionBtnSubject = new BehaviorSubject<boolean>(false);
setCall(value: boolean): void {
this.callToActionBtnSubject.next(value);
}
getCall(): Observable<boolean> {
return this.callToActionBtnSubject.asObservable();
}
}
更改主题值而不是组件属性值,它将在subscribes块中进行更新
if (data === 1) {
this.exampleService.setCall(true);
}
在form组件中,订阅与match组件中类似的主题。
如果要更改表单组件内的值,请与“匹配组件”相同:
this.exampleService.setCall(true) // or false
您不应该在其他组件中编辑组件属性。
创建专用服务:
class ExampleService {
callToActionBtnSubject = new BehaviorSubject<boolean>(false);
setCall(value: boolean): void {
this.callToActionBtnSubject.next(value);
}
getCall(): Observable<boolean> {
return this.callToActionBtnSubject.asObservable();
}
}
更改主题值而不是组件属性值,它将在subscribes块中进行更新
if (data === 1) {
this.exampleService.setCall(true);
}
在form组件中,订阅与match组件中类似的主题。
如果要更改表单组件内的值,请与“匹配组件”相同:
this.exampleService.setCall(true) // or false
根据您的问题,调用方法不清楚,但您可以查看以下链接,它可能会帮助您:
还有一件事:您需要告诉您的结构以获得正确的代码,如Angular for communication中使用的不同方法,如viewChild,ViewChildren等。根据您的问题,调用方法不清楚,但您可以查看以下链接,它可能会帮助您:
还有一件事:您需要告诉您的结构,以获得正确的代码,如Angular for communication中使用的不同方法,如viewChild,ViewChildren等。尝试使用viewChild:组件是如何放置的?表单组件和匹配组件之间是否存在父子关系?请分享示例Show Structure或示例stackblitz链接尝试使用ViewChild:组件的放置方式?表单组件和匹配组件之间是否存在父子关系?请共享示例Show Structure或示例stackblitz链接