在不同控制器中创建片段时出现重复 ID 错误

2023-12-05

所以...我正在构建一个基本上是 CRUD 的应用程序。在此应用程序中,我有以下视图/控制器:访问编辑 and 请求新.

At the 请求新控制器,我有一个处理按钮按下的函数:

onRequestNewAddCustomerPress: function(oEvent) {
  if( !this.oAddCustomerDialog ){
    this.oAddCustomerDialog = sap.ui.xmlfragment("com.sap.lccapp.fragment.AddCustomer", this);
  }
  this.oAddCustomerDialog.openBy(oEvent.getSource());
},

我在同一个控制器上有onExit功能。它现在是空的,因为我已经做了很多测试.destroy()该对象的函数(oAddCustomerDialog)并继续弹出错误。


问题是;于访问编辑控制器,当我尝试使用与上面相同的代码第二次使用相同的对话框时,它显示以下错误:

添加具有重复 id 'addCustomerNameField' 的元素

The ID "addCustomerNameField"来自我片段中的第一个元素。

尽管我对两种方法都有“if 验证”,并且由于它位于不同的控制器中,所以正在验证的最后一个“if”具有对象(this.oAddCustomerDialog)未定义(但它不应该具有未定义的值)并且它正在再次创建sap.ui.xmlfragment.


片段定义:http://dontpad.com/stackoverflowquestionsapui5


您可以在实例化片段时关联一个唯一的 ID。这样,这个唯一的 ID 将以片段包含的控件的 ID 为前缀。

因此,两个不同的代码将是:

onRequestNewAddCustomerPress: function(oEvent) {
  if (!this.oAddCustomerDialog) {
    this.oAddCustomerDialog = sap.ui.xmlfragment("idOnNewRequest","com.sap.lccapp.fragment.AddCustomer", this);
  }
  this.oAddCustomerDialog.openBy(oEvent.getSource());
},

进而:

onVisitEditAddCustomerPress: function(oEvent) {
  if (!this.oAddCustomerDialog) {
    this.oAddCustomerDialog = sap.ui.xmlfragment("idOnEdit","com.sap.lccapp.fragment.AddCustomer", this);
  }
  this.oAddCustomerDialog.openBy(oEvent.getSource());
},

另外,请检查以下文档主题:声明性 XML 或 HTML 片段中的 ID

编辑:如果从两个不同的视图调用这些片段,最好使用视图的 ID。我将修改代码以实例化片段,如下所示:

this.oAddCustomerDialog = sap.ui.xmlfragment(this.getView().getId(), "com.sap.lccapp.fragment.AddCustomer", this);

从UI5 1.58开始,工厂功能sap.ui.*fragment已弃用。请用Fragment.load反而!

Fragment.load({
  id: this.getView().getId(),
  name: "com.sap.lccapp.fragment.AddCustomer",
  controller: this,
}); // returns a promise
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在不同控制器中创建片段时出现重复 ID 错误 的相关文章

随机推荐

  • 按字段对文件内容进行数字排序

    我正在尝试编写一个 BASH 脚本来根据文件中的特定字段对文件内容进行数字排序 该文件位于 etc group 所有字段均以冒号分隔 我必须对内容进行排序 etc group基于第三个字段的数字 示例字段 daemon 1 root 到目前
  • 将 CFTypeRef(又名 const void*)发送到“void *”类型的参数会丢弃限定符

    以下代码中会发出警告 使用ARC if aAnim UIView beginAnimations nil context CFBridgingRetain NSNumber numberWithInt aOff UIView setAnim
  • 如何将 Maven Web 应用程序部署到本地安装的 Glassfish?

    如何仅使用 Maven 插件将 Maven Web 应用程序部署到本地安装的 glassfish 服务器 换句话说 如果我有一个带有 Packaging war 的 Maven 项目 可以使用 mvn clean package some
  • 如何修复“Float”对象没有属性“exp”?

    我在Python中有以下高斯方程 numpy exp x m 2 2 sigma 前提是x是一个矩阵 但是 该方程无法运行 并且出现以下错误 AttributeError Float object has no attribute exp
  • 只获取src值

    我在数据库中有一个始终有标签的字段 还有很多文字 例如 Hey there whats up img src http cdn theatlantic com static infocus ngpc112812 s n01 nursingm
  • 为什么谷歌oauth2游乐场无法返回数据?

    我正在使用谷歌游乐场学习 oauth2 我正在尝试这个请求 https www googleapis com youtube v3 activities part snippet 并收到此回复 error code 403 message
  • 从另一个页面通过Id获取元素

    如果 page2 包含指定元素 我需要更改 page1 的内容 如果我从同一页面获取 id 此代码效果很好 if document getElementById page element var str document getElemen
  • venv 中的 pip 版本不匹配

    我对虚拟 Python 环境如何工作感到困惑 Python 3 6 使用venv 我设置了 venv 并在命令行中激活它 我希望从那时起我所做的一切都使用虚拟环境中的 python 和 pip 命令 因为这些目录在激活时会添加到 PATH
  • 让 Google Analytics 查看测试服务器

    我有一个涉及 Google Analytics 和 Tomcat 的概念上简单的问题 但我无法解决它 我们为我们的生产机器设置了 Google Analytics 并且运行良好 我想设置一个 Google Analytics 帐户来监控我们
  • php 贝宝的基本立即付款按钮

    我将尝试将 paypal 与我的 php 和 html 网站集成 似乎有大量关于此主题的文档 但其中一些令人困惑 我基本上想做的是拥有一个我自己制作的购物车 显示用户想要购买的所有商品 并且为这些商品只有一个 paynow 按钮 该按钮会将
  • 将大量 system.out.println 重定向到 .txt 文件 [重复]

    这个问题在这里已经有答案了 可能的重复 将 java 输出打印到文件 在Java程序中 我有一个很长的方法 我认为发布它并不重要 因为它对问题并不重要 它有大量的 println 语句来将状态更新打印到控制台 我不想将这些打印输出到控制台
  • 如何使用Java捕获网页上的生物特征信息

    通过使用手写笔在 JSP 网页中开发的画布上签名来捕获生物识别信息 压力 速度 的正确方法是什么 好吧 既然没有人试图回答这个问题 我将详细阐述我的评论 并希望它也可以作为其他人的答案 首先 Java Server Pages JSP 是一
  • 如何通过post请求发送多个文件? (objective-c,iOS)

    我想发送帖子请求 但我需要发送多个文件 这个怎么做 tnx 您必须为要上传的不同图像创建边界 让我一步步解释 1 将图像转换为 NSData 并将其添加到字典中 UIImage image1 UIImage imageNamed image
  • 从 Visual Studio 2013 运行 MPI 应用程序

    我在 Visual Studio 2013 下编写了一个简单的 MPI 应用程序 它可以正常编译和构建 我在标准笔记本电脑 无集群 上运行 Windows 7 我安装了 Microsoft HPC Pack 2008 R2 以获得正确的 M
  • 相当于从 Mac OS X Finder 打印 .docx 文件的命令行

    我有一个应用程序需要从命令行打印 MS Word docx 文件 背景是这是在 Snow Leopard 服务器上 默认打印机是 CUPS PDF 如果在查找器中单击 docx 文件进行选择 然后从文件菜单中选择打印 则会打开 MS Wor
  • 如何使用 Tkinter 创建导入文件按钮?

    那么您知道当您使用记事本 在 Windows 上 时如何打开旧文件吗 单击文件 然后打开 然后打开一个文件对话框 您可以选择所需的文件 程序将显示其内容 基本上 我想用 Python 制作一个按钮来完成同样的事情 这是我的按钮功能 def
  • java中基本类型的转换规则

    In java 有整型 char short int long byte 有浮动类型 float double 有布尔类型 boolean 不是整型 与 C 语言不同 问题 是否有一个通用的铸造规则 根据 JLS 可以说明哪种类型可以转换为
  • 不带@调用实例变量

    我是 Ruby 编程新手 现在已经看到一些示例 其中调用实例变量时前面没有 符号 我不确定这是否是因为正在调用该方法并且实例变量作为以下结果存储在该方法中 attr reader在类或 if 中因为我对实例变量的理解错误 这是我所指的一个例
  • 节点生成进程检查超时

    我生成了有时需要很长时间才能运行的进程 我的问题是有办法限制此进程时间吗 例如3分钟后杀死这个进程 您可以使用process kill在超时的情况下 但请记住 如果子进程在被解雇之前完成 请取消超时 看一下这个例子 This is chil
  • 在不同控制器中创建片段时出现重复 ID 错误

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