2017-09-12 21 views
2

我曾嘗試閱讀上面的SAPUI5文檔,但我不能夠清楚地瞭解它的用法。 sap.ui.localResources()jQuery.sap.registerModulePath()之間還有什麼區別?何時使用jQuery.sap.registerModulePath()和一個示例?

如果有人可以用一個簡單的例子來說明這將是很有益的。我們也可以使用jQuery.sap.registerModulePath()加載mockData嗎?

回答

3

如果你無論是在bootstrap configapp descriptor使用resourceRoots,你已經使用jQuery.sap.registerModulePath所有的時間,因爲每個鍵值對,在resourceRoots被定義,被作爲參數傳遞給靜態方法傳遞。

例如,你可能有這樣的事情在您的index.html:然後

data-sap-ui-resourceroots='{ 
    "my.app": "./" 
}' 

UI5註冊命名空間"my.app")在全球爲基準說:「每當這個名字被提及,而其他解決模塊的名字,我應該尋找在註冊路徑「,這是"./"相對於我們的情況下,當前document.location.href目標模塊。

上面的代碼是相同的直接調用jQuery.sap.registerModulePath("my.app", "./")

  • 在這裏,我們可以傳遞用戶定義的URL前綴。例如: - 的"../"代替"./"如果該項目在one hierarchy level deeper such as mockserver.html
  • 另一個* .html文件如果我們在更深的層次結構中的模塊,它是必要的,例如在custom/control/somewhere/c3/chart/,我們可以註冊另一個命名空間:"my.app.c3chart": "./custom/control/somewhere/c3/chart"然後
    • 使用它作爲一個快捷方式,例如在xmlView中定義:
      xmlns:c3="my.app.c3chart"代替 xmlns:c3="my.app.custom.control.somewhere.c3.chart"
    • 通過在模塊文件改變其層級僅更改註冊路線,從而降低維護成本。命名空間"my.app.c3chart"仍然可以在任何地方使用。

是什麼sap.ui.localResources()和jQuery.sap.registerModulePath()有什麼區別?

這裏是什麼sap.ui.localResources實際執行當前source code

sap.ui.localResources = function(sNamespace) { 
    jQuery.sap.registerModulePath(sNamespace, "./" + sNamespace.replace(/\./g, "/")); 
}; 

就是這樣。它要求jQuery.sap.registerModulePath與命名空間(如果有的話)與"/"更換點的時候了。

  • 我們不能通過任何用戶定義的URL前綴
  • 命名空間是緊密結合實際文件夾層次結構和名稱。
  • SAP discourages此API的用法(適用於非獨立應用程序)。
  • API參考指出這個API將會過時。

說實話,我不知道什麼時候我會贊成sap.ui.localResources超過resourceRoots


隨意發表評論,如果事情是不明確或者如果有人有sap.ui.localResources一個很好的例子。

相關問題