访问NativeScript ListView项模板内容

访问NativeScript ListView项模板内容,nativescript,Nativescript,我使用的是NativeScript,我试图访问每个元素的中的各个元素。举一个具体的例子,给出这个代码片段,我如何访问每个 ... 我知道我可以向每个添加加载的事件-即-但是,对于我的用例,我需要在不相关的事件发生后更改上的属性 理论上,我可以使用加载的事件在中构建一个包含所有的数组,然后使用该数组执行操作,但这似乎有点老套。看来应该有更好的办法。有什么想法吗?我认为您可以使用id=“gridview{{{$index}}”之类的东西动态地给出每个gridview和id,然后使用page.ge

我使用的是NativeScript
,我试图访问每个元素的
中的各个元素。举一个具体的例子,给出这个代码片段,我如何访问每个


...
我知道我可以向每个
添加
加载的
事件-即
-但是,对于我的用例,我需要在不相关的事件发生后更改
上的属性


理论上,我可以使用
加载的
事件在
中构建一个包含所有
的数组,然后使用该数组执行操作,但这似乎有点老套。看来应该有更好的办法。有什么想法吗?

我认为您可以使用id=“gridview{{{$index}}”之类的东西动态地给出每个gridview和id,然后使用page.getViewById('gridView1')作为示例。目前无法测试它,但我认为这会起作用。

我认为您可以使用id=“gridview{{{$index}}”之类的东西动态地给出每个gridview和id,然后使用page.getViewById('gridView1')作为示例。目前无法进行测试,但我认为这会起作用。

您可以使用nativescript dom插件。getElementsByClassName实际上有代码来遍历ListView的子级。不幸的是,在我发现问题并将错误报告放入NS Common Components repo之后,我完全忘记了对nativescript dom插件中的getElementsByTagName和getElementById函数进行相同的更改

因此,如果为其指定类名,则使用getElementsByClassName现在应该可以工作了。否则;本周晚些时候,我可能会对该库进行更新,其中将包含其他两种方法的listview子遍历代码


更新:我发布了新版本的nativescript dom,允许所有三个getElement*处理ListView子项。

您可以使用nativescript dom插件。getElementsByClassName实际上有代码来遍历ListView的子级。不幸的是,在我发现问题并将错误报告放入NS Common Components repo之后,我完全忘记了对nativescript dom插件中的getElementsByTagName和getElementById函数进行相同的更改

因此,如果为其指定类名,则使用getElementsByClassName现在应该可以工作了。否则;本周晚些时候,我可能会对该库进行更新,其中将包含其他两种方法的listview子遍历代码


更新:我发布了一个新版本的nativescript dom,允许所有三个getElement*处理ListView子项。

操作列表视图项的可视化树似乎不是最健壮的方法。考虑下面的场景:

  • 一个项目被渲染到屏幕上
  • 您的代码将启动并修改可视容器的树
  • 用户滚动,或者发生其他情况,列表视图将重用另一项的可视容器。你的新物品现在看起来坏了

  • 我会使用绑定来实现这一点,如果有问题,还可以使用一个适当的视图模型来简化绑定。

    操作列表视图项的可视化树似乎不是最可靠的方法。考虑下面的场景:

  • 一个项目被渲染到屏幕上
  • 您的代码将启动并修改可视容器的树
  • 用户滚动,或者发生其他情况,列表视图将重用另一项的可视容器。你的新物品现在看起来坏了

  • 我会使用绑定来实现这一点,如果有问题,还可以使用适当的视图模型来简化绑定。

    这是一个聪明的想法,但不幸的是,它似乎不起作用。如果我尝试
    getElementById
    它在模板中找不到元素。这就像它们根本不在视觉树中一样。这是一个聪明的想法,但不幸的是,它似乎不起作用。如果我尝试
    getElementById
    它在模板中找不到元素。这就像它们根本不在可视化树中一样。我应该注意,我已经尝试过Nathanel优秀的nativescript dom插件()。然而,即使采用这种方法,模板的内容似乎也无法访问。然而,即使采用这种方法,模板的内容似乎根本无法访问。
    <ListView>
      <ListView.itemTemplate>
        <GridLayout>...</GridLayout>
      </ListView.itemTemplate>
    </ListView>