我有一個組件可以獲取有關其父資源的一些基本信息。AEM(cq5)處理組件內的信息
var parent = granite.resource.getParent();
我現在試圖在伴隨我的組件的JavaScript內獲取屬性「path」(parent.path),但是該數據在腳本內部不可用,但在呈現組件的屬性「path」的HTML內可用。
有人能說明爲什麼它可能在HTML內而不是JavaScript內?
我有一個組件可以獲取有關其父資源的一些基本信息。AEM(cq5)處理組件內的信息
var parent = granite.resource.getParent();
我現在試圖在伴隨我的組件的JavaScript內獲取屬性「path」(parent.path),但是該數據在腳本內部不可用,但在呈現組件的屬性「path」的HTML內可用。
有人能說明爲什麼它可能在HTML內而不是JavaScript內?
你應該能夠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
爲了獲得路徑,我不得不使用「currentNode.getParent().path」per @ Bambara的說明。
var parent = currentNode.getParent();
var path = parent.path;
我認爲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對象,只需確保您轉換爲正確的原語,以便您的數據可用。
請確保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
hi @Bambara,currentNode.getParent()。getPath();沒有工作,但是currentNode.getParent()。path;按預期工作,我能夠生成我需要的結構。你知道我在哪裏可以找到每個對象可用的所有屬性的文檔?您提供的鏈接確實覆蓋了通用對象,但沒有提供更多有關它們的詳細信息。 –