1

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.contexturl我在示例来源中没有找到任何定义。似乎在url某处隐式初始化。但具体在哪里?对象还有哪些其他字段/方法url

4

2 回答 2

1

url 对象在 WebScript 的所有 JavaScript 控制器中都可用。它是为方便而提供的许多内置对象之一(例如,其他包括“远程”和“用户”)。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”)。其他可用的属性包括:

  • 页面上下文
  • 乌里
  • 请求参数
  • 参数
  • 模板参数
于 2016-12-05T11:48:33.973 回答
1

Aikau 将在 service.js 文件上构建 URL。例如,您可以查看CRUDService.js文件并引用getUrlFromPayload方法,该方法的调用方式如下:

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

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

希望这对您有所帮助。

于 2016-12-05T08:53:05.850 回答