Javascript 从角度视图中的另一个组件禁用表单字段
我有三个基于角材料的单选按钮,即男按钮、女按钮和其他按钮。这三个字段存在于一个组件中,我在另一个名为page1的组件中也有三个表单字段,即a、B、C。当我按下男性单选按钮并转到page1组件时,page1组件中的表单字段A和B应该不可见。当我按下女性或其他单选按钮时,page1组件中的所有三个表单字段都应该存在。我试了一天,但都没用。如果你知道,请帮忙 注意:我使用角材质(mat form字段和mat单选按钮)进行此操作。在stackblitz中,我无法安装这些,所以请以棱角材料的方式安装 我已附上stackblitz链接示例:Javascript 从角度视图中的另一个组件禁用表单字段,javascript,angular,forms,angular-material,Javascript,Angular,Forms,Angular Material,我有三个基于角材料的单选按钮,即男按钮、女按钮和其他按钮。这三个字段存在于一个组件中,我在另一个名为page1的组件中也有三个表单字段,即a、B、C。当我按下男性单选按钮并转到page1组件时,page1组件中的表单字段A和B应该不可见。当我按下女性或其他单选按钮时,page1组件中的所有三个表单字段都应该存在。我试了一天,但都没用。如果你知道,请帮忙 注意:我使用角材质(mat form字段和mat单选按钮)进行此操作。在stackblitz中,我无法安装这些,所以请以棱角材料的方式安装 我已
您可以使用BehaviorSubject或Subject来触发函数调用 TriggerService.ts
import { Injectable } from "@angular/core";
import { BehaviorSubject } from "rxjs/internal/BehaviorSubject";
@Injectable()
export class TriggerService {
constructor() {}
private _trigger = new BehaviorSubject<string>("");
castTrigger = this._trigger.asObservable();
trigger(value) {
this._trigger.next(value);
}
}
child.component.ts
export class AppComponent {
constructor(private triggerService: TriggerService) {
document.title = "Home";
}
changeType(value) {
this.triggerService.trigger(value);
}
}
ngOnInit() {
this.triggerService.castTrigger.subscribe(value => {
this._type = value;
});
}
创建一个
getter setter
方法或在您的服务中使用subject
。并根据预期的行为在不同的组件中使用该值。你能在stackblitz链接中这样做吗?不,我告诉过你该过程尝试实现它。如果您在实施后发现任何问题,请提出单独的问题。本论坛不是为他人编写代码的论坛。有没有更简单的方法?对不起,我不知道其他方法,如果父模板中提到了子组件,那么我们将类型作为@Input传递给子组件