首页 > 解决方案 > 从 ObservableArray 访问对象值并在 Label 中显示它们

问题描述

我无法访问存储在 ObservableArray 中的对象的值:

const observable = require("tns-core-modules/data/observable");
const ObservableArray = require("tns-core-modules/data/observable-array").ObservableArray;

var myArray = new ObservableArray([]);

var pageData = observable.fromObject({
    myArray: myArray
});

exports.onLoad = function (args) {
    const page = args.object;
    page.bindingContext = pageData;
    // a Bluetooth plugin returns a peripheral object
    myArray.push(peripheral);
    //console.log(Object.keys(peripheral));
}

console.log()函数像这样打印peripheral对象:

JS: [type, UUID, name, RSSI, state, advertisement, manufacturerId, manufacturerData]

这是我的 XML 文件:

<Page loaded="onLoad">
    <ListView items="{{ myArray }}">
        <ListView.itemTemplate>
            <StackLayout>
                <Label text="{{ peripheral['UUID'] }}"/>
            </StackLayout>
        </ListView.itemTemplate>
    </ListView>
</Page>

ListView 项目加载得很好,但我无法让标签显示外围对象的任何值。我很确定peripheral['UUID']语法是错误的,但我找不到有关如何访问这些数据的信息......

任何正确方向的帮助或指示将不胜感激。

标签: javascriptnativescript

解决方案


peripheral只是数组中不存在的变量名。只需绑定UUID.

<Page loaded="onLoad">
<ListView items="{{ myArray }}">
    <ListView.itemTemplate>
        <StackLayout>
            <Label text="{{ UUID }}"/>
        </StackLayout>
    </ListView.itemTemplate>
</ListView>
</Page>

推荐阅读