[英]How to assign <ng-select [multiple]=isMultiple varibale dynamically?
我需要动态更改选择框的行为。 以下方法不起作用,因为我们无法在调用服务后动态设置此变量。 该组件将在服务被触发之前初始化。 对于这种情况,我们有什么解决方法吗?
<ng-select
[multiple]=isMultiple
ngOnInit(){
this.testService.isMultiple().subscribe(
(isMultiple: boolean): void => {
this.isMultiple = true;
}
}
使用ChangeDetectorRef
触发手动更改检测。
isMultiple
的值是从asynchronous
操作中分配的,这需要一些时间来完成异步操作和检索结果。 因此,角度无法自动检测isMultiple
的变化。 在这种情况下,我们必须在异步操作完成后手动触发change detection
。
import {ChangeDetectorRef} from "@angular/core";
@Component({...})
export class [className] {
constructor( private _cdref: ChangeDetectorRef ) {}
ngOnInit(){
this.testService.isMultiple().subscribe(
(isMultiple: boolean): void => {
this.isMultiple = true;
this._cdref.detectChanges();
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.