首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过其ID获取在core:html中定义的元素

通过其ID获取在core:html中定义的元素
EN

Stack Overflow用户
提问于 2018-11-21 21:20:56
回答 2查看 465关注 0票数 3

我使用这一行在view.xml中定义了一个画布元素:

代码语言:javascript
复制
<core:HTML content="&lt;div class=&quot;wrapper col-6&quot;&gt;&lt;canvas id=&quot;
myChart&quot;width=&quot;800&quot;height=&quot;400&quot;&gt;&lt;/canvas&gt;&lt;/div&gt;"> 
</core:HTML>

现在,我想在控制器中获得元素,但是即使站点成功地用ID加载画布,典型的this.getView().byId("myChart")似乎也无法工作。

是否有一种方法可以在控制器的core:HTML标记中定义这些类型的元素?

如果没有,是否有不同的方法来创建画布或其他HTML元素,以便我可以使用ID /在控制器中使用它们?

EN

Stack Overflow用户

回答已采纳

发布于 2018-11-22 16:05:16

正如Jorg所说,byId用于检索控件。因此,如果要在HTML控件上放置一个id,可以检索该控件,然后在其上调用getDomRef()来获取最外层的元素,在您的示例中,这个元素就是div。如果只将画布放入HTML控件中,就会得到它。

如果像Jorg建议的那样直接访问画布的id,那么如果要在页面内使用视图两次,就会遇到麻烦,因为画布的id不再是唯一的了。

还有第三个和IMHO更好的选择,就是直接在视图中使用html。首先,您需要为它声明一个名称空间,如

xmlns:html="http://www.w3.org/1999/xhtml

最好就在你的视图元素上。

然后,可以在xml视图中直接编写html,如下所示:

这样,您就可以为您的画布获得一个正确的(唯一) id,并且可以使用this.getView().getDomRef("-mycanvas")作为视图的一部分访问它。注意额外的前导破折号,因为内部id生成不一致在UI5。还请注意,getDomRef()被认为是受保护的,但我怀疑它是否会改变。最后,请记住,您只能为呈现的控件获取domref,因此您可能希望通过afterRendering事件访问它。

票数 3
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53420623

复制
相关文章

相似问题

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