首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用widget fullpath访问widget的属性?

如何使用widget fullpath访问widget的属性?
EN

Stack Overflow用户
提问于 2019-07-13 03:05:53
回答 2查看 48关注 0票数 0

我知道,使用widget.getFullPath()方法,我们可以以"pagename.child1name.child2name....childNname.widgetname".格式的字符串形式检索小部件的完整路径我正在尝试找到一种使用此字符串访问原始小部件的方法。我成功地使用了这个:

app.pages"pagename".children"child1name".children"child2name"....children"childNname".children"widgetname".text =“一些文本”;

但我不知道如何在更一般的函数中改变这一点,独立于路径的深度。任何想法都将不胜感激。谢谢。

EN

回答 2

Stack Overflow用户

发布于 2019-07-13 05:39:12

父级根后代应该包含页面上的所有内容,因此请尝试:

代码语言:javascript
运行
复制
widget.parent.root.descendants.ANYTHING.value;

如果您希望任何内容成为变量,则可能需要执行此操作

代码语言:javascript
运行
复制
widget.parent.root.descendants[ANYTHING].value;
票数 0
EN

Stack Overflow用户

发布于 2019-07-13 14:08:12

我的目的是从另一个页面访问小部件的属性。小部件的根是它的页面,它是完整路径中第一个点之前的字符串。我最终编写了一个函数,它在将完整的路径字符串拆分到一个数组中后构建对象:

代码语言:javascript
运行
复制
function getWidgetPath(pathString) {
  var pathArray = pathString.split('.');
  var widgetPath = app.pages[pathArray[0]];
  for( i=1; i<pathArray.length; i++ ) {
    widgetPath = widgetPath.children[pathArray[i]];
  }
  return widgetPath;
}

该函数可用于构建目标对象。也就是说,考虑到目标小部件是一个标签,并且我想要更改它的文本属性,我使用:

代码语言:javascript
运行
复制
var targetPath = 'parentpage.panel1.panel2.panel3.label1';
var targetWidget = getWidgetPath(targetPath);
targetWidget.text = 'some text';

不过,我有一种感觉,它不太像Javascriptian。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57012762

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档