2015-01-30 4 views
1

SharePoint 2013 JavaScript에서 현재 사용자가 수정 한 목록의 모든 항목을로드하려고합니다. 나는 이것을 시도했다 :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

젠장, 내가 다시보기-요소를 잊었다! Vadim에게 감사드립니다. – Hinek