4

AnguillaフレームワークでGetLocalizedItemsメソッドを使用したいと思います。

新しいフィルターを作成し、条件を設定する方法や、成功と失敗に何を使用するかがわかりません。

GUIの場合:

tridion.Web.UI.ContentManager.WhereUsed.GetListUsedItems(id, filter.conditions, 
    filter.columns, success, failure);

この名前空間のメソッドは、拡張機能で使用することを目的としていますか?

4

1 に答える 1

5

フィルターの作成

フィルタの作成方法の例を次に示します。

var filter = new Tridion.ContentManager.ListFilter();
filter.conditions.ItemTypes = 16 | 2; // folders and components
filter.conditions.Recursive = true;
filter.conditions.BasedOnSchema = "tcm:1-23-8,tcm:1-32-8".split(",");
filter.columns = Tridion.Constants.ColumnFilter.DEFAULT;

または、General.js からのこの非常に単純なケース:

var templateFilter = new Tridion.ContentManager.ListFilter({ 
    conditions: { ItemTypes: [ itemType ] } 
});

WCF メソッドの呼び出し

あなたの質問の 2 番目の部分は、 https://stackoverflow.com/a/9385975/209103で既にカバーされていますが、ここではもう少し具体的にします。

このような WCF/AJAX 呼び出しは、完了するまでに時間がかかる場合があるため、非同期で実行されます。通常は、閉じ括弧の後の行で呼び出しの結果を単純に処理しますが、関数が完了する前にその行が実行されるため、AJAX 呼び出しではそれを行うことはできません。代わりに、関数が完了すると呼び出される 1 つ以上のコールバック関数を渡す必要があります。

私は通常、ブラウザの JavaScript デバッガに割り込む 2 つの関数を渡すだけで、そのようなメソッドを最初に見つけ始めます。

Tridion.Web.UI.ContentManager.WhereUsed.GetListUsedItems(
    "tcm:1-23", 
    filter.conditions, 
    filter.columns, 
    new function() { console.log(arguments); debugger; }, 
    new function() { console.log(arguments); debugger; }
);

したがって、TCM サーバーへの (非同期) HTTP 呼び出しが成功したときに最初の (匿名) 関数が呼び出され、呼び出しが失敗したときに 2 番目の関数が呼び出されます。上でリンクした回答では、それらを と呼び、onSuccessそのonFailure性質をより明確にしています。

argumentsこの場合の両方の関数は、JavaScript で常に渡される暗黙のパラメーターを単純に記述します。次に、ブラウザーの JavaScript デバッガーに割り込むため、引数をさらに詳しく調べることができます。

于 2012-06-23T01:14:09.440 に答える