【问题标题】:SAPUI5 Property mProperties is a private member of sap.ui.base.ManagedObjectSAPUI5 属性 mProperties 是 sap.ui.base.ManagedObject 的私有成员
【发布时间】:2021-09-27 11:50:27
【问题描述】:

我正在使用 oData 模型在 SAPUI5 中编程。

我需要得到这个值:

在我看来,它被声明为 Orgpf:

<HBox class="sapUiResponsiveMargin">
                <Text class="titulo" id="tituloplanta" text="{i18n>tituloTablaPl} "/>
                <Text class="titulo" id="planta" text="{Orgpf}"/>
            </HBox>

当我在 Chrome 中检查“控制台”选项卡时,我得到了这个:

mProperties 有我需要的文本值。

所以我试图在我的控制器上写下这个值:

var a = this.getView().byId("planta").bindElement({
    path: "/CenTVSet('" + ip + "')"
});
var oModel = this.getView().getModel();
var planta = oModel.oData;
value = this.byId("planta").getText();

但它在控制台中没有显示任何内容,并显示此错误指向我的代码:

有什么方法可以解决这个问题并从控制器中获取该值?

编辑:

尝试使用value = this.byId("planta").getText();

它在控制台中显示,但为空值:

【问题讨论】:

  • value = this.byId("planta").getText(); 之前的每一行都是完全没有必要的(尤其是bindElement)。请删除它们并查看您的代码是否有效
  • 我做到了,它只是在控制台中显示为一个空值。我会更新我的问题。

标签: view properties controller sapui5


【解决方案1】:

您应该使用provided APItext 属性中获取值。

const value = this.byId("planta").getText();

有了它,您可以在控制器中使用控件text 值。

【讨论】:

  • 我不知道为什么这不起作用。当我尝试执行 console.log 来查看它时,它显示为空...
  • 你能用一些控制器代码更新你的帖子吗?这取决于您尝试从该 Text 控件获取值的时间和地点。正如您在 xml 视图中看到的那样,您的 Text 控件的 text 属性正在使用数据绑定。因此,也许您尝试在模型加载该值之前获取该值。
  • 我用更多的控制器代码更新了它。谢谢!!
  • 您试图在控制器的哪个钩子方法中读取该值?也许您正试图过早地读取该值!您可以尝试读取 onAfterRendering() 方法中的值
  • 我尝试以与读取本地 IP 相同的方法读取它。我尝试了 onAfterRendering() 方法,即使它更快地出现在控制台中,问题是它看起来像空的(检查我的问题的编辑)。我认为问题不在于它应该出现的时间,而是它看起来像空的事实:/
【解决方案2】:

这是我得到的解决方案,以获得该值:

oModel.read("/CenTVSet('" + ip + "')",{
            success: function(oData, oRes){
                var einri = oData.Einri;
                var orgpf = oData.Orgpf;
                var oTable = that.getView().byId("tablaPacientes");
                var oBinding = oTable.getBinding("items");
                
                var filter = new Filter({
                    path: "Orgna",
                    operator: FilterOperator.EQ,
                    value1: orgpf
                });
                
                oBinding.filter(filter);
                
                //numero de pacientes
                oBinding.attachDataReceived(function(oEvent){
                    var iLength = oEvent.getSource().getLength();
                    
                    var oViewModel = new JSONModel({npat: iLength});
                    that.getView().setModel(oViewModel, "view");
                    
                //  that.getView().byId("pat").setText(iLength);
                });
            },
            error: function(oError){
                console.log("Error");
            }
        });

【讨论】:

    猜你喜欢
    • 2011-05-15
    • 2013-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-02
    • 1970-01-01
    • 1970-01-01
    • 2023-03-07
    相关资源
    最近更新 更多