以编程方式在 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;
        });
    }
}