如何在aikau小部件中初始化url.context?

时间:2016-12-04 08:56:02

标签: javascript dojo alfresco aikau

Aikau example定义了以下内容:

{
  name: "alfresco/forms/controls/DojoSelect",
  config: {
     label: "List Type",
     name: "prop_dl_dataListItemType",
     value: "dl:event",
     optionsConfig: {
        publishTopic: "ALF_GET_FORM_CONTROL_OPTIONS",
        publishPayload: {
           url: url.context + "/proxy/alfresco/api/classes/dl_dataListItem/subclasses",
           itemsAttribute: "",
           labelAttribute: "title",
           valueAttribute: "name"
        }
     }
  }

}

注意url.context。我没有在示例源中找到任何url定义。似乎url隐式初始化了某个地方。但到底在哪里?其他字段/方法url对象有哪些?

2 个答案:

答案 0 :(得分:1)

Aikau将在service.js文件上构建URL。 例如,您可以查看CRUDService.js文件并参考getUrlFromPayload方法,此方法称为,

 onGetAll: function alfresco_services_CrudService__onGetAll(payload) {
var url = this.getUrlFromPayload(payload); .... }

并将传递请求对象,以发出请求。

希望这对你有所帮助。

答案 1 :(得分:1)

url对象在WebScripts的所有JavaScript控制器中都可用。它是为方便起见而提供的众多内置对象之一(其他包括"远程"和#34;用户"例如)。 url.context将配置为正在运行的应用程序的上下文。通常,返回的值将是" share" (因为这是默认的应用程序上下文)。

在定义共享层(即/ share / services / ...)或存储库层(即/ share / proxy / alfresco / ...)上定义的API的URL时,通常需要应用程序上下文。

应该使用url.context,因为可以将应用程序配置为具有备用上下文根,因此最好编写一个Surf可以为您处理的内容。

Surf和WebScripts已经存在了比Aikau更长的时间,但遗憾的是他们缺乏良好的文档。

支持url对象的Java类是" org.springframework.extensions.webscripts.DefaultURLHelper" (扩展" org.springframework.extensions.webscripts.URLHelper")。其他可用的属性包括:

  • 的pageContext
  • URI
  • 的queryString
  • ARGS
  • templateArgs