Model SAPUI5 OData模型在运行时更改属性

Model SAPUI5 OData模型在运行时更改属性,model,odata,sapui5,Model,Odata,Sapui5,我有一个带有网格表的Fiori列表报告,希望设置属性的状态,以便突出显示该行。如何在extension controller中检索OData模型并对其进行迭代以设置property.status-“Error/Warning”并设置模型/刷新 我能够以this.getView().getModel().getProperty(“/”)的形式获取控制器中的模型 如何循环读取每个记录并根据某些条件设置属性的状态 提前谢谢 设置标签控制器格式的示例(使用setInterval模拟模型更改)—— 正文

我有一个带有网格表的Fiori列表报告,希望设置属性的状态,以便突出显示该行。如何在extension controller中检索OData模型并对其进行迭代以设置property.status-“Error/Warning”并设置模型/刷新

我能够以
this.getView().getModel().getProperty(“/”)的形式获取控制器中的模型

如何循环读取每个记录并根据某些条件设置属性的状态


提前谢谢

设置标签控制器格式的示例(使用setInterval模拟模型更改)——


正文
//格式化程序定义
var myFormatter={
formatText:函数(状态){
如果(状态==“正常”){
返回“好”;
}
返回“坏”;
}
};
//控制器定义
sap.ui.define([
“jquery.sap.global”,
“sap/ui/core/mvc/Controller”,
'sap/ui/model/json/JSONModel'
],函数(jQuery、控制器、JSONModel){
“严格使用”;
var cController=Controller.extend(“myView.Template”{
onInit:功能(oEvent){
var-oModel=newjsonmodel({
状态:“OK”,
});
var oView=this.getView();
oView.setModel(oModel);
setInterval(函数(){
oModel.setProperty(“/status”,oModel.getProperty(“/status”)==“OK”?“ERR”:“OK”);
}, 1000);
}
});
返回控制器;
});
//实例化视图和显示
var oView=sap.ui.xmlview({
viewContent:jQuery('#oView').html()
});
oView.placeAt(“内容”);

您不能在它们上面循环。将控件绑定到status属性。该模型已绑定到Grid Table,因此无需循环到以更新状态。条件可以在格式化程序中提供。谢谢,回答中是否提供了任何参考/链接/代码段谢谢代码段。然而,对于列表报告模板来说,这很棘手。找到了另一种方法,可以添加一个额外的列并将其设置为有效的格式化程序。谢谢
<!DOCTYPE HTML>
<html>

<head>
  <meta http-equiv="X-UA-Compatible" content="IE=edge" />
  <meta charset="UTF-8">
  <title>Text</title>
  <script id="sap-ui-bootstrap" type="text/javascript" src="https://sapui5.hana.ondemand.com/resources/sap-ui-core.js" data-sap-ui-theme="sap_bluecrystal" data-sap-ui-libs="sap.m" data-sap-ui-xx-bindingSyntax="complex">
  </script>

  <!-- XML-based view definition -->
  <script id="oView" type="sapui5/xmlview">
    <mvc:View height="100%" controllerName="myView.Template" xmlns:core="sap.ui.core" xmlns:mvc="sap.ui.core.mvc" xmlns="sap.m" class="viewPadding">
      <Label text="{path:'/status', formatter: 'myFormatter.formatText'
}" />
    </mvc:View>
  </script>
  <script>
    //Formatter Definition
    var myFormatter = {
      formatText: function(status) {
        if (status === "OK") {
          return "Good";
        }
        return "Bad";
      }
    };
    // Controller definition
    sap.ui.define([
      'jquery.sap.global',
      'sap/ui/core/mvc/Controller',
      'sap/ui/model/json/JSONModel'
    ], function(jQuery, Controller, JSONModel) {
      "use strict";

      var cController = Controller.extend("myView.Template", {
        onInit: function(oEvent) {
          var oModel = new JSONModel({
            status: "OK",
          });
          var oView = this.getView();
          oView.setModel(oModel);

          setInterval(function() {
            oModel.setProperty("/status", oModel.getProperty("/status") === "OK" ? "ERR" : "OK");
          }, 1000);
        }
      });

      return cController;
    });

    // Instantiate the View and display
    var oView = sap.ui.xmlview({
      viewContent: jQuery('#oView').html()
    });
    oView.placeAt('content');
  </script>
    </head>

<body class="sapUiBody" role="application">
  <div id="content"></div>
</body>

</html>