2016-12-04 29 views
1

Aikau example定义如下:url.context如何在aikau小部件中初始化?

{ 
    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

+0

它涉及到冲浪根对象。 http://docs.alfresco.com/5.1/references/APISurf-rootscoped.html – izodev

+0

你为什么没有发布答案? – Cherry

回答

1

Aikau将在service.js文件中构建URL。 例如,你可以去看看CRUDService.js文件,并指getUrlFromPayload方法调用此方法一样,

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

,它会传递请求对象,发出请求。

希望这对你有所帮助。

1

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

定义在共享层(即/ 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