如何动态分配 <ng-select [multiple]=is Multiple 变量?
How to assign <ng-select [multiple]=isMultiple varibale dynamically?
我需要动态更改 select 框行为。下面的方法不起作用,因为我们不能在调用服务后动态设置这个变量。该组件将在服务被触发之前初始化。对于这种情况,我们有什么解决方法吗?
<ng-select
[multiple]=isMultiple
ngOnInit(){
this.testService.isMultiple().subscribe(
(isMultiple: boolean): void => {
this.isMultiple = true;
}
}
使用 ChangeDetectorRef
触发手动更改检测。
isMultiple
的值是从 asynchronous
操作分配的,这需要一些时间来完成异步操作和检索结果。所以,angular 无法 auto-detect 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();
}
}
}
我需要动态更改 select 框行为。下面的方法不起作用,因为我们不能在调用服务后动态设置这个变量。该组件将在服务被触发之前初始化。对于这种情况,我们有什么解决方法吗?
<ng-select
[multiple]=isMultiple
ngOnInit(){
this.testService.isMultiple().subscribe(
(isMultiple: boolean): void => {
this.isMultiple = true;
}
}
使用 ChangeDetectorRef
触发手动更改检测。
isMultiple
的值是从 asynchronous
操作分配的,这需要一些时间来完成异步操作和检索结果。所以,angular 无法 auto-detect 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();
}
}
}