如何在 UI5 XML-View 中动态获取特定的 EntitySet?
How to get a specific EntitySet dynamically in an UI5 XML-View?
有没有办法传递动态参数来识别 UI5 XML-View 中的特定 EntitySet?我将 UI5 与 ODataV2 一起使用,这是我的 XML UI5 文本对象:
<Tex text="{/ProductSet('AR')/ProductName}"/>
请注意,'AR' 是特定 EntitySet 的键,它为我提供了特定 ProductSet 的 ProductName。
但不是硬编码密钥,有没有办法动态传递它?例如:
<Tex text="{/ProductSet('{ProductKey}')/ProductName}"/>
您应该从控制器使用 Property Binding or Element Binding。
在这里你可以编写任何你喜欢的路径。
所以我通过在控制器中预加载我需要的 EntitySet 解决了这个问题。我不知道这是否是最好的方法,但它可以按预期工作。
我在我的控制器的“onBeforeRendering”方法中预加载 ProductSet,因此当进行视图的其他异步调用时,数据将已经可用。
onBeforeRendering:function(){
this.loadProductSet();
},
loadProductSet: function () {
return new Promise(function (resolve, reject) {
this.getView().getModel().read("/ProductSet", {
success: function (oData) {
resolve();
}.bind(this),
error: function (oError) {
reject();
}.bind(this)
});
}.bind(this));
},
并且在 XML 视图中我使用格式化程序来传递特定集合的 ID:
<ObjectAttribute title="Name" text= "{parts :['ProductKey'], formatter: '.formatter.getProductSet' }" />
这里是格式化程序代码:
getProductSet: function (sProductKey) {
var oModel = this.getView().getModel();
var sProductName = oModel.getProperty("/ProductSet('" + sProductKey + "')/ProductName");
return sProductName;
}
但是,如果有一种方法可以在 XML 中动态传递参数,那就太好了 :) 希望有一天它会实现。
有没有办法传递动态参数来识别 UI5 XML-View 中的特定 EntitySet?我将 UI5 与 ODataV2 一起使用,这是我的 XML UI5 文本对象:
<Tex text="{/ProductSet('AR')/ProductName}"/>
请注意,'AR' 是特定 EntitySet 的键,它为我提供了特定 ProductSet 的 ProductName。
但不是硬编码密钥,有没有办法动态传递它?例如:
<Tex text="{/ProductSet('{ProductKey}')/ProductName}"/>
您应该从控制器使用 Property Binding or Element Binding。 在这里你可以编写任何你喜欢的路径。
所以我通过在控制器中预加载我需要的 EntitySet 解决了这个问题。我不知道这是否是最好的方法,但它可以按预期工作。 我在我的控制器的“onBeforeRendering”方法中预加载 ProductSet,因此当进行视图的其他异步调用时,数据将已经可用。
onBeforeRendering:function(){
this.loadProductSet();
},
loadProductSet: function () {
return new Promise(function (resolve, reject) {
this.getView().getModel().read("/ProductSet", {
success: function (oData) {
resolve();
}.bind(this),
error: function (oError) {
reject();
}.bind(this)
});
}.bind(this));
},
并且在 XML 视图中我使用格式化程序来传递特定集合的 ID:
<ObjectAttribute title="Name" text= "{parts :['ProductKey'], formatter: '.formatter.getProductSet' }" />
这里是格式化程序代码:
getProductSet: function (sProductKey) {
var oModel = this.getView().getModel();
var sProductName = oModel.getProperty("/ProductSet('" + sProductKey + "')/ProductName");
return sProductName;
}
但是,如果有一种方法可以在 XML 中动态传递参数,那就太好了 :) 希望有一天它会实现。