以编程方式在 Nativescript + Angular App 中设置 ListPicker.selectedIndex
Programmatically set ListPicker.selectedIndex in Nativescript + Angular App
我正在开发我的第一个 Nativescript 应用程序,我选择 Angular 作为框架。我 运行 遇到了一个 ListPicker 组件的小问题。我能够使用项目列表呈现组件,并且可以最初设置 selectedIndex;但是,当我稍后尝试以编程方式更改 selectedIndex 时(例如,从 0 到 2),UI 中显示的值不会更新(在 Android 上测试)。令人惊讶的是,selectedIndexChange 回调确实记录了正确的新 selectedIndex。如何强制 UI 显示新 selectedIndex 的正确值?
ngZone.run
可用于帮助强制 UI 识别数据更改:
import { NgZone } from "@angular/core";
export class TestComponent {
selectedIndex: number;
constructor(private ngZone: NgZone) {}
testMethod(pos: number): void {
this.ngZone.run(() => {
this.selectedIndex = pos;
});
}
}
我正在开发我的第一个 Nativescript 应用程序,我选择 Angular 作为框架。我 运行 遇到了一个 ListPicker 组件的小问题。我能够使用项目列表呈现组件,并且可以最初设置 selectedIndex;但是,当我稍后尝试以编程方式更改 selectedIndex 时(例如,从 0 到 2),UI 中显示的值不会更新(在 Android 上测试)。令人惊讶的是,selectedIndexChange 回调确实记录了正确的新 selectedIndex。如何强制 UI 显示新 selectedIndex 的正确值?
ngZone.run
可用于帮助强制 UI 识别数据更改:
import { NgZone } from "@angular/core";
export class TestComponent {
selectedIndex: number;
constructor(private ngZone: NgZone) {}
testMethod(pos: number): void {
this.ngZone.run(() => {
this.selectedIndex = pos;
});
}
}