【发布时间】:2017-12-19 15:31:24
【问题描述】:
我有以下有效的代码:
ctx.load(workflowAssociations);
//below works but loops through all available workflows, it seems sub may contain the array that needs to be accessed
ctx.executeQueryAsync(function (sender, args) {
var subsEnum = workflowAssociations.getEnumerator();
while (subsEnum.moveNext()) {
var sub = subsEnum.get_current();
alert(sub);
console.log('Web: ' + web.get_url() + ', Subscription: ' +
sub.get_name() + ', id: ' + sub.get_id());
var initiationParams = {};
workflowServicesManager.getWorkflowInstanceService().startWorkflowOnListItem(
sub, items.getItemAtIndex(0).get_id(), initiationParams);
ctx.executeQueryAsync(function (sender, args) {
console.log('Workflow started.');
}, errFunc);
}
}, errFunc);
function errFunc(sender, args) {
alert("Error occured! " + args.get_message() +
'\r\nStack trace: ' + args.get_stackTrace());
}
我正在尝试简化这个循环,并且只访问集合中的一个对象,而不使用 while 循环。我尝试了以下方法:
//var subsEnum = workflowAssociations.getEnumerator();
console.dir(subsEnum);
console.dir(workflowAssociations[2]);
console.log(subsEnum[2]);
var sub = subsEnum.get_current(0);
console.dir(sub);
console.dir(subsEnum);
但是,其中大多数都是未定义的。这是我使用 chrome 中的手表表达能力探索对象时的样子。 我不想使用 $2_0 的东西,因为在迁移中我认为它可能会改变。
对于任何信息不足,我提前道歉。
【问题讨论】:
标签: javascript arrays rest sharepoint sharepoint-workflow