1

如果我不想做任何映射,是否还有另一种方法可以调用组件中的方法,即“上两层”。像这样:

  service
     component_to_call.cfc
  mem
     pages
     handlers
        calling.cfc

这是我从内部打来的电话calling.cfc

  <cfinvoke 
    component="service.component_to_call"
    method="do_the"
    param1="#renderedResults#" 
    param2="#taskByName#" 
    returnvariable="tamperedCode">
    </cfinvoke>

这会引发service.component_to_call无法找到的错误。

问:
如何调用父文件夹中的组件?

4

2 回答 2

3

为什么不想使用映射?这有点奇怪。

无论如何,只需直接浏览到您希望实例化的 CFC,它就会输出它的自动生成的 API 文档,首先是它的完整虚线路径。你可以用那个。然而,这是绝对的,不是相对的。

你不能做的是以某种方式指定一个相对路径,就像使用文件一样(例如:“../../fileInGrandparentDir.cfm”......不能用 CFC 路径来做到这一点。

另一种方法是将作为两个 CFC 的祖先的某个目录创建为自定义标记路径,然后您可以通过文件名引用 CFC,CF 会找到它们。如果目录结构很复杂,这样做会影响性能。也就是说:性能影响不大

真的......您应该有一个到应用程序目录顶层的映射,然后使用该映射来完全路径 CFC。这就是它通常的做法,我认为这是最便于携带的方法。

于 2012-10-05T21:18:50.053 回答
3

您可以在与调用 CFC 相同级别的 Proxy.cfc 中包含上一级的 CFC,然后通过添加 extends="Proxy" 作为调用 CFC 的属性来扩展 Proxy.cfc。

示例 Proxy.cfc

<cfcomponent name="Proxy">
<cfinclude template="../../service/component_to_call.cfc">
</cfcomponent>

调用 cfc 的示例

<cfcomponent name="calling" extends="Proxy">
</cfcomponent>
于 2012-10-05T21:11:56.560 回答