2015-04-06 66 views
0

我有一個組件可以獲取有關其父資源的一些基本信息。AEM(cq5)處理組件內的信息

var parent = granite.resource.getParent();

我現在試圖在伴隨我的組件的JavaScript內獲取屬性「path」(parent.path),但是該數據在腳本內部不可用,但在呈現組件的屬性「path」的HTML內可用。

有人能說明爲什麼它可能在HTML內而不是JavaScript內?

+0

請確保granite.resource.getParent()返回一個Resource或Node類型的對象,以便您可以訪問其路徑屬性,您嘗試了: 'var parentPath = currentNode.getParent()。getPath();' http://docs.adobe.com/docs/en/aem/6-0/develop/sightly/global-objects.html – Bambara

+0

hi @Bambara,currentNode.getParent()。getPath();沒有工作,但是currentNode.getParent()。path;按預期工作,我能夠生成我需要的結構。你知道我在哪裏可以找到每個對象可用的所有屬性的文檔?您提供的鏈接確實覆蓋了通用對象,但沒有提供更多有關它們的詳細信息。 –

回答

1

你應該能夠currentNode.getParent().getPath();做到這一點

至於你提到(我對geometrixx,戶外/ EN /活動/ cajamara-biking.html頁面測試這個),您可以訪問很多默認對象,這裏提到:http://docs.adobe.com/docs/en/aem/6-0/develop/sightly/global-objects.html

這些只是Java支持的對象(完整的類名稱在說明字段中)。要了解更多信息,請使用Google的課程名稱。例如,currentNode是一個javax.jcr.Node類,其中提供的方法記錄在這裏:http://www.day.com/specs/jsr170/javadocs/jcr-2.0/javax/jcr/Node.html

0

爲了獲得路徑,我不得不使用「currentNode.getParent().path」per @ Bambara的說明。

var parent = currentNode.getParent(); 
var path = parent.path; 
0

我認爲currentNode.getParent()。getPath()返回可能無法工作的Java String對象如果你做了一個var path =「」+ currentNode.getParent()。getPath();將路徑放在一個Javascript字符串中,不要忘記Rhino是你的Java對象和Javascript腳本之間的中間人,所以任何作爲Bean的Java對象都可以使用.path而不是getPath()來訪問,因爲Rhino會進行轉換。所以當你讀取.path或者設置.path =「/ some/path」時,Getters和Setters會自動調用,當然這個屬性有setter。

在JS服務器端,您可以訪問整個Java對象,只需確保您轉換爲正確的原語,以便您的數據可用。