簡體   English   中英

引用cfinvoke中的Coldfusion組件時如何遍歷兩個級別?

[英]How to traverse two levels up when referencing a coldfusion component in a cfinvoke?

如果我不想進行任何映射,則還有另一種方法可以在組件中調用方法,即“兩級升級”。 像這樣:

  service
     component_to_call.cfc
  mem
     pages
     handlers
        calling.cfc

這是我從calling.cfc內部calling.cfc

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

這引發了一個錯誤,即找不到service.component_to_call

問題:
如何調用父文件夾中的組件?

您可以從更高級別將CFC包含在與調用CFC處於同一級別的Proxy.cfc中,然后通過添加extend =“ Proxy”作為調用CFC的屬性來擴展Proxy.cfc。

示例Proxy.cfc

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

調用cfc的示例

<cfcomponent name="calling" extends="Proxy">
</cfcomponent>

您為什么不想使用映射? 有點奇怪。

無論如何,只要直接瀏覽到您要實例化的CFC,它將輸出它的自動生成的API文檔,第一件事就是它的全點划線路徑。 您可以使用它。 但是那是絕對的,不是相對的。

您不能做的就是以某種方式指定一個相對路徑,例如可能使用一個文件(例如:“ ../../ fileInGrandparentDir.cfm”。。。。。。)

一種替代方法是將某個目錄作為兩個CFC的祖先,成為一個自定義標簽路徑,然后您可以通過CFC的文件名引用它們,然后CF會找到它們。 如果目錄結構復雜,則這樣做會降低性能。 話雖如此 ,但對性能的影響並不

真的...您應該在應用程序目錄的頂層有一個映射,然后使用該映射對CFC進行全路徑處理。 我認為這就是通常的做法,並且是最可移植的方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM