关闭后如何清除dialog/xmlfragment内容? [复制]

2023-11-30

我的对话框定义为document:

  onOpenDialog : function () {
     var oView = this.getView();
     var oDialog = oView.byId("helloDialog");
     // create dialog lazily
     if (!oDialog) {
        // create dialog via fragment factory
        oDialog = sap.ui.xmlfragment(oView.getId(), "sap.ui.demo.wt.view.HelloDialog");
        oView.addDependent(oDialog);
     }


     oDialog.open();
  }

假设这个对话框有很多Input/Select/ComboBox等,用户在其中输入,关闭,导航到另一个主项和详细信息页面,再次打开这个对话框实例,信息仍然在这里。如果我想在用户每次关闭它时清除信息/输入怎么办?

关闭后销毁此对话框是解决此问题的唯一方法吗?


对话框 XML

<Dialog afterClose="dialogAfterclose" >
    <beginButton>
        <Button text="yes" press="confirmOk"/>
    </beginButton>
    <endButton>
        <Button text="no" press="confirmCancel"/>
    </endButton>
</Dialog>

创建对话框

if(!this._oDialog){
    this._oDialog = sap.ui.xmlfragment("idFragment","Path_to_your_Dialog", this);           
}

你需要使用destroy() of the sap.ui.core.Element.

dialogAfterclose: function(oEvent) {
    this._oDialog.destroy();
}

根据你的代码

onOpenDialog : function () {
  var oView = this.getView();
  if (!this._oDialog) {
      this._oDialog = sap.ui.xmlfragment(oView.getId(), "sap.ui.demo.wt.view.HelloDialog");
      oView.addDependent(this._oDialog);
  }
  this._oDialog.open();
},     
dialogAfterclose: function(oEvent) {//function called after Dialog is closed
   this._oDialog.destroy();//destroy only the content inside the Dialog
},
confirmOk: function(oEvent) {
    this._oDialog.close();//Just close the Dialog, Dialog afterClose() will be called and destroy the Dialog content.
}

Ref: sap.ui.core.Element - destroy()

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

关闭后如何清除dialog/xmlfragment内容? [复制] 的相关文章

  • SAPUI5中的语言切换

    我的 SAPUI5 控件存在语言问题 如果我执行例如 sap ui getCore getConfiguration setLanguage de 我的 i18n 文件已正确加载 所有标签均已翻译为德语 但控件仍然是英文的 获取德语控件的唯
  • 尽管调试已关闭,UI5 仍继续加载调试源

    我的 SAPUI5 应用程序通过以下方式使用模块SAP CDN 在 DevTools Network 选项卡中我看到发起者许多文件是调试版本 例如 jquery dbg js 我用 SAPUI5 诊断工具检查过 调试已禁用 No sap u
  • 在不同控制器中创建片段时出现重复 ID 错误

    所以 我正在构建一个基本上是 CRUD 的应用程序 在此应用程序中 我有以下视图 控制器 访问编辑 and 请求新 At the 请求新控制器 我有一个处理按钮按下的函数 onRequestNewAddCustomerPress funct
  • 如何在 SAPUI5 的控制器中使用内部化 i18n?

    谁能解释一下如何使用i18n中的文本setValueStateText控制器中的方法 oTP setValueStateText i18n gt co Maximal 60 h 对话框中的错误消息仅显示 i18n gt co Maximal
  • 验证日期时间选择器的输入

    如何在 XML 视图中为 datetimepicker 注册验证错误回调 以及如何因无效日期输入而触发此事件 The 日期时间选择器控件是一个带有弹出日期选择器的输入框 用户可以直接在输入中键入或使用所选日期来选择日期 我可以向日期时间值添
  • 将图像/图标添加到单选按钮[重复]

    这个问题在这里已经有答案了 我需要为单选按钮组中的每个单选按钮显示图像 我见过一些自定义单选按钮和单选按钮组的示例 但它们都不起作用 有人可以指出我正确的方向吗 正确的方向 是首先看看有哪些替代方案可以帮助用户实现其目标 而不是创建自定义控
  • 为输入字段注册自定义焦点事件处理程序的最佳实践

    遗憾的是 我没有找到任何焦点事件sap m Input or sap m TextArea我可以在 XML 视图中注册处理程序 您的最佳实践是什么 例如如果你有近 100 个字段并且其中大部分应该处理focus 事件 以便自动选择输入字段中
  • 带参数的路由不起作用

    我正在关注tutorial https openui5 hana ondemand com docs guide 2366345a94f64ec1a80f9d9ce50a59ef html在这里 我陷入了带参数的路由 该示例应用程序未在我的
  • 使用 OData 服务时无法加载资源

    你好 社区 我需要一些帮助 我的 odata 服务已经在运行 并且我有一个像这样的网址 https myclient port sap opu odata SAP servicename SRV MaterialListSet https
  • 呈现为下拉列表的智能字段不显示说明

    我有一个智能字段 我定义如下
  • 对多于一列进行过滤

    我有一个可以从一列中过滤的表格 handleSearch function oEvent var sValue oEvent getParameter value var oFilter new sap ui model Filter RA
  • 如何获取sap.m.table中一行的内容

    所以基本上我的问题是我有一个页面 var page1 new sap m Page title Something enableScrolling true content oTable new sap m Table items colu
  • sap.ui.core.routing.Router.navTo() 和 sap.m.routing.Targets.display() 有什么区别?

    假设我们有一条路线和一个目标 routes pattern modify name modify target master modify targets modify viewName Modify viewId modify viewL
  • 箭头函数中的“未捕获类型错误:this._isDateType 不是函数”

    每次我都会遇到找不到函数定义的类型错误 代码如下 return BaseController extend ch micarna weightprotocol controller Calendar onInit function cons
  • SAPUI5自定义伪事件

    在 SAPUI5 OpenUI5 中定义自定义伪事件的最佳实践是什么 例如 假设我想在按住扩展的 sap m Button 几秒钟时触发一个事件 我不确定是否还有任何 最佳实践 我真的认为只有 一种 实践 但我渴望学习任何其他做法 所以如果
  • 使用 XML-View 将浏览器事件附加到控件

    我的 REST 服务向我发送了大量数据 每个属性都包含value and a help 包含字段属性的详细描述的属性 好的 我在 JSONModel 中有数据 具有值和帮助的属性列表 并且我使用数据绑定XML https openui5 h
  • 加载实体而不将其绑定到视图

    在控制器中 Detail controller js 我想访问尚未绑定到控件的 OData 实体 如果输入0001 of my BananaSet绑定到视图 我可以通过访问原始数据 this getView getModel getProp
  • 智能表,onclick事件

    是否可以在智能表上处理 onClick 事件 我已经注释了来自后端的数据 单击某个条目时 我想导航到一个新视图 显示与我单击的条目关联的所有数据 我怎样才能在 SAPUI5 中实现这一点 我可以在 JavaScript 控制器中使用 get
  • 如何将参数传递给 XML 视图 SAP UI5 中的事件处理程序

    我在将数据从 XML 视图发送到控制器时遇到问题 在 JS 视图中很容易实现 例如 在 JS 看来 var btn new sap m Button text click tap function callFunction oEvent m
  • SAPUI5-每次显示视图时调用哪个方法? [复制]

    这个问题在这里已经有答案了 我想在每次显示视图之前执行一些逻辑 我不能使用 before 渲染方法 因为它仅在视图创建并首次显示时调用一次 请帮忙 有什么想法吗 你认为为什么控件的渲染前方法只被调用一次 你有示例代码吗 我在 jsbin 上

随机推荐