访问 NativeScript ListView itemTemplate 内容
Accessing NativeScript ListView itemTemplate contents
我正在使用 NativeScript <ListView>
,我正在尝试访问每个元素 <ListView.itemTemplate>
中的各个元素。举一个具体的例子,给定这个代码片段,我如何访问每个 <GridLayout>
?
<ListView>
<ListView.itemTemplate>
<GridLayout>...</GridLayout>
</ListView.itemTemplate>
</ListView>
我知道我可以为每个 <GridLayout>
添加一个 loaded
事件——即<GridLayout loaded="myEventHandler">
—但是,对于我的用例,我需要在发生无关事件后更改 <GridLayout>
上的属性。
理论上我可以使用 loaded
事件在 <ListView.itemTemplate>
中构建所有 <GridLayout>
的数组,然后使用该数组执行操作,但这看起来很老套.似乎必须有更好的方法。有什么想法吗?
我想你可以使用 id="gridView{{$index}}" 之类的东西动态地给每个 gridview 和 id 然后使用 page.getViewById('gridView1') 例如。目前无法测试,但我认为可以。
您可以使用 nativescript-dom 插件。 getElementsByClassName 实际上具有遍历 ListView 的子项的代码。不幸的是,在我发现这个问题并将错误报告放入 NS 通用组件存储库之后——我完全忘记了对 nativescript-dom 插件中的 getElementsByTagName 和 getElementById 函数进行相同的更改。
因此,如果您为其指定一个 class 名称,则使用 getElementsByClassName 现在应该可以正常工作。除此以外;我可能会在本周晚些时候对库进行更新,其中将包含用于其他两种方法的列表视图子遍历代码。
更新: 我发布了一个新版本的 nativescript-dom 允许所有三个 getElement* 在 ListView children 上工作。
操作列表视图项的可视化树似乎不是这里最可靠的方法。考虑以下情况:
- 一个项目被渲染到屏幕上。
- 您的代码启动并修改可视化容器的树。
- 用户滚动或发生其他事情,列表视图将视觉容器重新用于另一个项目。您的新商品现在看起来已损坏。
我会使用绑定来实现它,如果事情变得复杂,我会使用一个合适的视图模型来使绑定变得简单。
我正在使用 NativeScript <ListView>
,我正在尝试访问每个元素 <ListView.itemTemplate>
中的各个元素。举一个具体的例子,给定这个代码片段,我如何访问每个 <GridLayout>
?
<ListView>
<ListView.itemTemplate>
<GridLayout>...</GridLayout>
</ListView.itemTemplate>
</ListView>
我知道我可以为每个 <GridLayout>
添加一个 loaded
事件——即<GridLayout loaded="myEventHandler">
—但是,对于我的用例,我需要在发生无关事件后更改 <GridLayout>
上的属性。
理论上我可以使用 loaded
事件在 <ListView.itemTemplate>
中构建所有 <GridLayout>
的数组,然后使用该数组执行操作,但这看起来很老套.似乎必须有更好的方法。有什么想法吗?
我想你可以使用 id="gridView{{$index}}" 之类的东西动态地给每个 gridview 和 id 然后使用 page.getViewById('gridView1') 例如。目前无法测试,但我认为可以。
您可以使用 nativescript-dom 插件。 getElementsByClassName 实际上具有遍历 ListView 的子项的代码。不幸的是,在我发现这个问题并将错误报告放入 NS 通用组件存储库之后——我完全忘记了对 nativescript-dom 插件中的 getElementsByTagName 和 getElementById 函数进行相同的更改。
因此,如果您为其指定一个 class 名称,则使用 getElementsByClassName 现在应该可以正常工作。除此以外;我可能会在本周晚些时候对库进行更新,其中将包含用于其他两种方法的列表视图子遍历代码。
更新: 我发布了一个新版本的 nativescript-dom 允许所有三个 getElement* 在 ListView children 上工作。
操作列表视图项的可视化树似乎不是这里最可靠的方法。考虑以下情况:
- 一个项目被渲染到屏幕上。
- 您的代码启动并修改可视化容器的树。
- 用户滚动或发生其他事情,列表视图将视觉容器重新用于另一个项目。您的新商品现在看起来已损坏。
我会使用绑定来实现它,如果事情变得复杂,我会使用一个合适的视图模型来使绑定变得简单。