【问题标题】:overriding a function in coldfusion覆盖冷融合中的功能
【发布时间】:2020-12-04 06:24:44
【问题描述】:

我在两个CFCs 中有一个名为OnSubmit 的函数,

一个是 BASE.cfc 另一个是 PageUsed.cfcbase.cfcpageused.cfc 中的函数不同,但名称是名称,参数相同。

还有一个名为 UserObject.cfc 的第三个 CFC,通过将方法名称作为 Basic 传递来调用,该方法名称返回 PageUsed.cfc 对象,方法称为 OnSubmit

它基本上应该在pageUsed 中调用Onsubmit 函数,但它正在调用Base.cfc OnSubmit 函数

出了什么问题

有什么想法吗?

我是否需要使用 SUPER,但在我阅读时,super 用于其他目的

【问题讨论】:

  • PageUsed.cfc 是否扩展 base.cfc?你确定函数basic() 正在返回PageUserd.cfc 吗?你能在返回的对象上做一个getMetaData() 来验证吗?
  • getmetadata on which cfc, the userobject.cfc
  • 设置一些变量等于函数UserObject.basic()的结果。这是返回包含预期onSubmit() 函数的对象的函数。您需要验证该函数是否返回了正确的对象,但事实并非如此。
  • 请编辑您的问题并添加来自 UserObject.cfc 的调用 OnSubmit 函数的代码。

标签: inheritance coldfusion lucee


【解决方案1】:

组件通常会扩展其他组件,您可以在组件声明中明确执行此操作。

<component extends="some.other.component">

在你的情况下,如果你正在做&lt;component name="pageused" extends="base"&gt;,那么在你可能拥有的 pageused 组件中。

function onSubmit() {

}

pageUsed.onSubmit() 这样调用 onSubmit 将运行该函数。如果您想在 base 中运行 onSubmit,可以将以下内容添加到 pageused。

function onSubmit() {
    super.onSubmit(); //Calling onSubmit in base.cfc
}

您的问题令人困惑的是这部分:

还有一个名为 UserObject.cfc 的第三个 CFC 通过传递一个 方法名称为 Basic,返回 PageUsed.cfc 对象,方法称为 OnSubmit,

我知道有一个 userObject.cfc,但你能分享它的代码吗,因为看起来那部分可能不像你想象的那样工作。尤其令人困惑的是,您传递的名称是“basic”,但返回的是“pageUsed”。为什么不返回basic?

【讨论】:

  • 我认为我的问题没有被理解,我知道继承,扩展
  • 我正在尝试创建一个 comman 函数来启动结构中的其他外部组件调用,如果它们存在于范围内,请不要再次调用它们,
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-19
  • 2018-07-18
  • 1970-01-01
  • 2011-02-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多