我想在Anguilla框架中使用GetLocalizedItems方法.
我不知道如何创建新的过滤器并设置条件或用于成功和失败的内容.
在GUI中:
tridion.Web.UI.ContentManager.WhereUsed.GetListUsedItems(id, filter.conditions,
filter.columns, success, failure);
Run Code Online (Sandbox Code Playgroud)
此命名空间中的方法是否应由我们的扩展使用?
以下是如何构建过滤器的示例
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;
Run Code Online (Sandbox Code Playgroud)
或者来自General.js的这个非常简单的案例:
var templateFilter = new Tridion.ContentManager.ListFilter({
conditions: { ItemTypes: [ itemType ] }
});
Run Code Online (Sandbox Code Playgroud)
您的问题的第二部分确实已经在/sf/answers/657018281/中介绍过了,尽管我会在这里更具体一些.
像这样的WCF/AJAX调用是异步执行的,因为它们可能需要一些时间才能完成.虽然通常在结束括号之后简单地处理行上调用的结果,但是在AJAX调用中不能这样做,因为该行将在函数完成之前执行.相反,您必须传入一个或多个函数完成后调用的回调函数.
当我第一次开始计算这样一个方法时,我通常只传入两个打入浏览器JavaScript调试器的函数:
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; }
);
Run Code Online (Sandbox Code Playgroud)
因此,当对TCM服务器的(异步)HTTP调用成功时调用第一个(匿名)函数,而在调用失败时调用第二个(匿名)函数.在我上面链接的答案,我们叫他们onSuccess,并onFailure让自己的性质更加明确.
在这种情况下,这两个函数只是编写arguments始终在JavaScript中传递的隐式参数.然后他们会进入浏览器的JavaScript调试器,这样您就可以进一步检查参数.
| 归档时间: |
|
| 查看次数: |
380 次 |
| 最近记录: |