2015-01-30 7 views
1

В JavaScript SharePoint 2013 я хочу загрузить все элементы из списка, которые были изменены текущим пользователем. Я пробовал:Получить элементы, измененные текущим пользователем, через JSOM

var ctx = SP.ClientContext.get_current(); 
var settings = ctx.get_web().get_lists().getByTitle('My Setting List'); 

var settingQuery = new SP.CamlQuery(); 
settingQuery.set_viewXml('<Query><Where><Eq><FieldRef Name="Editor" LookupId="TRUE" /><Value Type="Integer"><UserID /></Value></Eq></Where></Query>'); 
var settingItems = settings.getItems(settingQuery); 

ctx.load(settingItems, 'Include(Id, Title)'); 
ctx.executeQueryAsync(/* ... */); 

Но он дает мне все предметы от всех пользователей. Что я сделал не так?

ответ

1

SP.CamlQuery.viewXml Property ожидает XML схемы должны быть указаны в следующем формате:

<View> 
    <Query> 
     ... 
    </Query> 
</View> 

Таким образом, решение вложить свой запрос, используя View элемент.

Пример

var ctx = SP.ClientContext.get_current(); 
var list = ctx.get_web().get_lists().getByTitle(listTitle); 
var qry = new SP.CamlQuery(); 
qry.set_viewXml('<View><Query><Where><Eq><FieldRef Name="Editor" LookupId="TRUE" /><Value Type="Integer"><UserID /></Value></Eq></Where></Query></View>'); 
var items = list.getItems(qry); 

ctx.load(items, 'Include(Id, Title)'); 
ctx.executeQueryAsync( 
     function() { 
     console.log(items.get_count()); 
     }, 
     function(sender,args){ 
     console.log(args.get_message()); 
     }); 
+1

Черт, я забыл View-Element, еще раз! Спасибо Вадиму. – Hinek