繁体   English   中英

如何分配

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM