0

专家们,

我需要在扩展的 Fiori 应用程序中将动态 ID 声明到 XML 视图中。我需要这个,因为我需要根据 Item 值设置图像 src。

有没有办法做这样的事情?

<Image id="myImage{MyModelProperty}" />

问候, 安德烈

4

2 回答 2

2

计算字段将满足您的要求。

1.在引导配置中设置标志data-sap-ui-xx-bindingSyntax="complex"。详情在这里

2.在你的控制器js中定义一个格式化函数。

imageFormatter : function(value) {
    var imageSrc = "myImage" + value;
    return imageSrc;
}

3.在XML视图中声明Image如下

<Image src="{path:'MyModelProperty',formatter:'.imageFormatter'}"/>

希望它能解决你的问题。

于 2014-11-19T04:40:27.377 回答
1

据我所知,不能从模型属性中构建 ID。为什么要构建图像的 ID 而不是它的src属性?如果你想确保图像ID的唯一性,那么就让框架来处理它。

如果将src属性与模型绑定一起使用,则底层模型属性的更改将立即在 UI 上生效。只需setProperty("MyModelProperty", "new_image_postfix")在您的模型实例上调用。

带有按钮的简短示例及其文本绑定:

<!DOCTYPE HTML>
<html>
  <head>
    <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
    <meta http-equiv='Content-Type' content='text/html;charset=UTF-8'/>

    <script src="https://sapui5.hana.ondemand.com/resources/sap-ui-core.js"
            data-sap-ui-libs="sap.ui.commons"
            data-sap-ui-theme="sap_goldreflection">
    </script>
    <script type="text/javascript">
      var oModel = new sap.ui.model.json.JSONModel();
      oModel.setData({txt: "Sample"});
      sap.ui.getCore().setModel(oModel);
      var oButton = new sap.ui.commons.Button({id:"testBtn", text:"{/txt}", press:function(oEvent) { oModel.setProperty("/txt", "SampleUpdated") } });
      oButton.placeAt("content");
    </script>
  </head>
  <body class="sapUiBody" role="application">
    <div id="content"></div>
  </body>
</html>
于 2014-11-19T00:00:49.083 回答