フィルターの作成
フィルタの作成方法の例を次に示します。
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 デバッガーに割り込むため、引数をさらに詳しく調べることができます。