JavaScriptからItemServiceを使用する
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
ItemServiceは、Sitecoreアイテムを作成、フェッチ、保存、および削除するためのスタンドアロンのXHR (XMLHttpRequest) ライブラリです。フロントエンドとバックエンド間のデータトランザクションを支援するための多くの組み込みユーティリティとヘルパーがあります。ライブラリは /sitecore/shell/client/Services/Assets/lib/itemService.jsです。
多くの例では、Unit.jsの機能を使用しています。例をリテラルで実行する場合は、コードにUnit.jsへの参照を追加する必要があります。
このトピックでは、次の内容について説明します。
アイテムの作成
アイテムの作成
アイテムを作成するには、オブジェクトと、サーバーにアイテムを作成させるSitecoreツリー内のパスを渡してから、executeメソッドを呼び出します。
ダーティアイテムを作成するには、executeメソッドを呼び出さないでください。
アイテムの取得
アイテムの取得
ItemIDでアイテムをフェッチするには、fetchItem() メソッドを使用します。
アイテムの子の取得
アイテムの子の取得
アイテムの子を取得するには、fetchChildren() メソッドを使用します。
アイテムの保存
アイテムの保存
アイテムを保存する前に、アイテムをフェッチまたは作成する必要があります。
アイテムの破壊
アイテムの破壊
アイテムを破棄する前に、アイテムをフェッチまたは作成する必要があります。
アイテムの検索
アイテムの検索
アイテムを検索するには、検索を使用する方法とクエリを使用する方法の2つがあります。
search() の使用
項目を検索するには、検索語を渡してからexecuteメソッドを呼び出します。
query() の使用
アイテムをクエリするには、クエリ項目を渡してからexecuteメソッドを呼び出します。
「xxxx-xxxx-xxxx-xxxx」は、クエリ アイテムのSitecore IDです。
ダーティアイテムの作成
ダーティアイテムの作成
ダーティアイテムとは、ブラウザのメモリにのみ存在し、サーバーに保存されていないアイテムです。これは、アプリケーションがユーザー入力を待つ必要がある場合に便利です。次のコードを使用して、ダーティアイテムを作成します。
アイテムが汚れていないか確認する
アイテムが汚れていないか確認する
アイテムが保存されていないかどうか (「ダーティアイテム」である) は、isNewプロパティで確認できます。
アイテムがサーバーから来るとき、isNewは常にfalseです。
アイテムを生のJSONとして取得する
アイテムを生のJSONとして取得する
アイテムのデータを生のJSONとして取得する必要がある場合があります(追加のメソッドとプロパティをすべて使用しないでください)。次のコードを使用して、アイテムを生のJSONとして取得します。
追跡アイテム
追跡アイテム
アイテムに追跡を追加できます。これにより、次の機能を追加できます。
-
アイテムは、プロパティが変更されたときに自動的に保存できます。
-
hasChanged() を呼び出して、アイテムが変更されたかどうかを確認できます。
-
revertChanges() を呼び出して、プロパティ値を元に戻すことができます。
追跡可能なオプションをtrueに設定して、アイテムに追跡を追加します。
アイテムの自動保存
アイテムの自動保存
Sitecore.Services.Clientがアイテムへの変更を自動的に保存するように指定できます。 trackableをtrueに設定すると、この機能がオンになります。保存イベントは、エミッタの「on」または「once」を使用してリッスンできます。
hasChanged() メソッド
hasChanged() メソッド
ItemServiceでhasChanged() メソッドを追加するように指定するには、trackableをtrueに設定します。hasChanged()メソッドを使用して、アイテムが変更されたかどうかを確認します。
hasChangedメソッドは、値がnull、undefined、および '' (空の文字列) の間で変更された場合、trueを返しません。
revertChanges() メソッド
revertChanges() メソッド
ItemServiceがtrack ableをtrueに設定することで、revertChanges()メソッドを追加するように指定できます。revertChanges()メソッドを使用して、アイテムの変更を元に戻します。
Queryオブジェクト
Queryオブジェクト
各ItemServiceメソッドはクエリ オブジェクトを返します。
promiseの処理
promiseの処理
ほとんどすべての非同期呼び出しはpromiseを返します。具体的には、execute() メソッドはpromiseを返します。 ItemServiceはqモジュールを使用してこれを処理します。
ミドルウェアの操作
ミドルウェアの操作
このItemServiceは 、sc-useifyモジュールを使用してミドルウェア機能を提供します。
ミドルウェアを統合した場合、次にサーバーからデータを受信するときに、このデータには タイムスタンプ プロパティがあります。
すべてのミドルウェアワーカーをクリアできます(またはキーでクリアできます)。
すべてのミドルウェアをクリアしたため、次にサーバーからデータを受信したときには、データに タイムスタンプ プロパティがありません。
イベントエミッターの操作
イベントエミッターの操作
イベントエミッターを使用してアイテムを拡張できます。
ItemServiceと検証
ItemServiceと検証
ItemServiceでは、クライアント側の検証は提供されません。次の例では、アイテムのIDを無効なGUIDに変更し、保存をトリガーします。クライアントは、検証が行われないため、保存の実行を許可します。ただし、サーバーが無効なデータを含むリクエストを受け取った場合、リクエストは解決されず、promiseは失敗します。