2014-09-04 51 views
3

我有一種感覺,這是CF9一個bug,從這個看:How to specify argument attributes in CFscript? (CF9)CFSCRIPT組件的功能和returntypes

然而,如果沒有,我正在寫在一個CF9組件CFSCRIPT(純),並嘗試將參數作爲用戶定義的cfc類型傳遞。

public function init(required _lbr._core._sharing._access.accessLinkDAO oAccessLinkDAO) returntype="_lbr._core._sharing._access.accessLinkBusiness" { 

但是CF一直不斷回訪:

You cannot use a variable reference with "." operators in this context 

這事與CF9純碎?

+1

這是相當冗長。我建議將'import _lbr._core._sharing._access。*'添加到CFC中,然後您可以簡單地使用'public accessLinkBusiness函數init(必需的accessLinkDAO或oAccessLinkDAO)'另外... CFC路徑中的所有下劃線是什麼。 ..曼很難閱讀和打字。 – 2014-09-04 13:31:13

+0

是的,com.domain.app.package.MyComponent作爲符號行業標準有什麼問題?並def使用導入來縮略引用它。 – 2014-09-04 13:41:53

+0

@AdamCameron我以前曾試過這種方式,但遇到同樣的錯誤,因此將其切換,看起來文檔實際上並沒有統一的方式。你使用的是哪個版本的CF。我認爲這可能是一個已經在其中一個補丁中修復的CF9錯誤。 – Jarede 2014-09-04 14:02:32

回答

1

我已經確認這是CF9.0中的一個錯誤(並且固定在CF9.0.1或CF9.0.2中的一個;可能是9.0.1)。

但是修復很簡單。問題只在於虛線路徑,而@ScottStroz指出,你不需要它們。這工作得很好:

component { 
    public accessLinkBusiness function init(required accessLinkDAO oAccessLinkDAO) { 
     return this; 
    } 
} 

我乾脆搬到返回類型,因爲這只是它的正常的地方:它會爲屬性工作太(但語法是很可怕)。

如果您要引用的返回類型或參數類型的氯氟烴使用它們不是在同一目錄作爲CFC,使用import語句,例如,在這種情況下:

import _lbr._core._sharing._access.*;