使用XML-View将浏览器事件附加到控件

时间:2015-07-06 11:57:51

标签: sapui5

我的REST服务向我发送了大量数据。每个属性都包含valuehelp - 属性,其中包含字段属性的长描述。

好的,我在JSONModel中有数据(包含值和帮助的属性列表),我使用数据绑定 XML https://openui5.hana.ondemand.com/#docs/guide/91f0f3cd6f4d1014b6dd926db0e91070.html在表单中映射数据value和表格。 现在我想以某种方式显示每个属性的help消息。

当用户双击message dialog或表格中列标题的Label时,我的想法是显示Text

Label和Text都有attachBrowserEvent方法但我不知道如何使用该函数来附加事件仅在XML视图中打字 < / p>

我想要这样的事情:

在XML-View中:

<Label text="Language" 
          attachBrowserEvent:"function("click",showMessageHelp({model>/language/help}))">

<Input value="{model>/language/value}"/>

在控制器中:

showMessageHelp:function(sMessage){

//show message dialog with sMessage
...........
}

2 个答案:

答案 0 :(得分:4)

您可以使用 onAfterRendering 方法实现此目的。 在XML中使用CustomData:

library(microbenchmark)
microbenchmark(c(sapply(y, function(n) seq.int(n,n+3) )), unlist(lapply(y, function(n) seq.int(n,n+3) )), outer(y, 0:3, "+"), rep(0:3, each = length(y)) + y )

Unit: microseconds
                                             expr    min      lq     mean  median      uq     max neval cld
      c(sapply(y, function(n) seq.int(n, n + 3))) 25.992 27.9270 34.74009 28.8890 30.1080 146.436   100   c
 unlist(lapply(y, function(n) seq.int(n, n + 3)))  7.506  8.7910  9.64311  9.4120  9.8325  28.643   100  b 
                               outer(y, 0:3, "+")  7.912  8.9105 11.34952  9.6955 10.6820  71.677   100  b 
                   rep(0:3, each = length(y)) + y  1.145  1.4770  1.72713  1.6285  1.8680   5.767   100 a  

然后在控制器中使用此customData:

<Label id="label" text="Language">
    <customData>
          <core:CustomData key="type" value="{/language/help}" />
    </customData>
</Label>

JS fiddle is here

PS:我不确定这对你来说是否可行。 这是我目前能想到的最好的。

答案 1 :(得分:0)

可以为每个标签附加一个浏览器事件,但是如果不重复每个标签ID,我找不到办法。

我找到了另一种解决方案:我的数据显示在表格和表格中。 我在每个表单的右侧添加了一对标签: 一个带有帮助信息的Text元素:

    <Label text="Field duck"/>
    <Text text="{model>/elements/mainFields1/duck/value}"/>
    <Text text="{model>/elements/mainFields1/duck/ATTR/help/description}" visible="{ui>/bShowHelp}" />

在表格中,我将每个列标题分为两组:标题和页脚;在页脚中我放置了帮助信息:

<Column>
   <header>
      <Text text="Name"/>
   </header>
   <footer>
      <Text text="{model>/elements/airports/templateNewRow/name/ATTR/help/description}" visible="{ui>/bShowHelp}"/>
   </footer>
</Column>

我更改显示并隐藏所有帮助信息的bShowHelp的值