2016-12-04 3 views
1

Aikau exampleは、次のように定義していますaikauウィジェットでurl.contextはどのように初期化されますか?

{ 
    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

アイカウはservice.jsファイルにURLを作成します。 はたとえば、CRUDService.jsファイルを見て、getUrlFromPayload方法を参照して、このメソッドは次のように呼ばれて、

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

、要求を行うために、リクエストオブジェクトが渡されますことができます。

ご希望の場合はこちらをご覧ください。

1

urlオブジェクトは、WebScriptのすべてのJavaScriptコントローラで使用できます。利便性のために提供される多数のビルトインオブジェクトの1つです(例えば、「リモート」と「ユーザー」など)。 url.contextは実行されているアプリケーションのコンテキストに設定されます。したがって、通常は返される値は "share"(デフォルトのアプリケーションコンテキスト)です。

通常、共有層(つまり/ share/services/...)またはリポジトリ層(/ share/proxy/alfresco/...)のいずれかで定義されたAPIのURLを定義するには、 。

url.contextは、アプリケーションが別のコンテキストルートを持つように構成することができるので、Surfがあなたのために処理できるものをコード化する方がよいので、url.contextを使用する必要があります。

サーフとウェブスクリプトは、アイカウよりもずっと長い間存在していて、残念なことに、良い文書が欠けています。

urlオブジェクトを戻すJavaクラスは、「org.springframework.extensions.webscripts.DefaultURLHelper」(「org.springframework.extensions.webscripts.URLHelper」を拡張)です。利用可能な他の属性が含まれます:

  • のpageContext
  • URI
  • のqueryString
  • 引数
  • templateArgs
関連する問題