2014-12-25 2 views
2

누구든지 Javascript API를 사용하여 Sharepoint에서 탐색 기간을 얻으려고합니까? MSDN에서이 코드를 발견했지만 사용법을 알지 못했습니다.자바 스크립트를 사용하여 탐색 기간 가져 오기

http://msdn.microsoft.com/en-us/library/office/jj994618(v=office.15).aspx

당신은 내가 현재 페이지 탐색 기간을 얻을 수있는 방법을 말해 또는 자바 스크립트를 사용하여 ID로 탐색 기간을 얻을시겠습니까?

감사합니다.

답변

8

SP.Publishing.Navigation.NavigationTermSet.getAsResolvedByWeb Method을 사용하여 탐색 기간 집합 개체를 검색 할 수 있습니다.

SP.SOD.executeFunc('sp.js', 'SP.ClientContext', function() { 
    SP.SOD.registerSod('sp.taxonomy.js', SP.Utilities.Utility.getLayoutsPageUrl('sp.taxonomy.js')); 
    SP.SOD.executeFunc('sp.taxonomy.js', 'SP.Taxonomy.TaxonomySession', function() { 
     SP.SOD.registerSod('sp.publishing.js', SP.Utilities.Utility.getLayoutsPageUrl('sp.publishing.js')); 
     SP.SOD.executeFunc('sp.publishing.js', 'SP.Publishing.Navigation.NavigationTermSet', function() { 

      var navTermSetId = 'ccef718f-fc01-4d27-b877-431f2e4bf136';  
      var navTermId = '1b04f1b2-f5f4-4c7b-a87f-28fb8665824b'; 
      loadNavigationTermSet(navTermSetId, 
       function(navTermSet){ 
        for(var i = 0;i < navTermSet.get_terms().get_count();i++) { 
        var navTerm = navTermSet.get_terms().getItemAtIndex(i);  
        if(navTerm.get_id().toString() == navTermId){ 
         console.log(navTerm.get_taxonomyName()); 
        } 
        } 
       }, 
       function(sender, args) 
       { 
        console.log('Request failed ' + args.get_message() + ':'+ args.get_stackTrace()); 
       } 
      );    
     });    
    }); 
}); 

function loadNavigationTermSet(navTermSetId,success,error) 
{ 
    var ctx = SP.ClientContext.get_current(); 
    var taxonomySession = SP.Taxonomy.TaxonomySession.getTaxonomySession(ctx); 

    var termStore = taxonomySession.getDefaultSiteCollectionTermStore(); //retrieve default Term Store 
    var termSet = termStore.getTermSet(navTermSetId); 
    var navTermSet = SP.Publishing.Navigation.NavigationTermSet.getAsResolvedByWeb(ctx,termSet, ctx.get_web(), "GlobalNavigationTaxonomyProvider"); 

    ctx.load(navTermSet,'Terms'); 
    ctx.executeQueryAsync(function(){ 
     success(navTermSet); 
    }, 
    error); 
} 

예 2

다음 예는 탐색 조건을 검색하는 방법을 보여줍니다 :

다음 예는 탐색 기간을 탐색 기간을 설정 개체를 검색하고 검색하는 방법을 보여줍니다
SP.SOD.executeFunc('sp.js', 'SP.ClientContext', function() { 
    SP.SOD.registerSod('sp.taxonomy.js', SP.Utilities.Utility.getLayoutsPageUrl('sp.taxonomy.js')); 
    SP.SOD.executeFunc('sp.taxonomy.js', 'SP.Taxonomy.TaxonomySession', function() { 
     SP.SOD.registerSod('sp.publishing.js', SP.Utilities.Utility.getLayoutsPageUrl('sp.publishing.js')); 
     SP.SOD.executeFunc('sp.publishing.js', 'SP.Publishing.Navigation.NavigationTermSet', function() { 

      var navTermSetId = 'ccef718f-fc01-4d27-b877-431f2e4bf136';  
      loadNavigationTerms(navTermSetId, 
       function(navTerms){ 
        for(var i = 0;i < navTerms.get_count();i++) { 
        var navTerm = navTerms.getItemAtIndex(i);  

        console.log(navTerm.get_id().toString()); 
        console.log(navTerm.get_title().get_value()); 
        console.log(navTerm.get_categoryImageUrl()); 
        } 
       }, 
       function(sender, args) 
       { 
        console.log('Request failed ' + args.get_message() + ':'+ args.get_stackTrace()); 
       } 
      );    
     });    
    }); 
}); 

여기서

+0

답장을 보내 주셔서 감사합니다. 나는 정말로 나를 많이 도와 준다. 이제 탐색 용어를 얻을 수 있지만 title, categoryImageUrl과 같은 속성에 액세스 할 때 예외가 발생하지 않습니다. 또는 때로는 SP.Publishing.CustomizeString 자체 get_value 함수를 통해 액세스 할 수없는 반환 "값을 초기화하지 않습니다 ..."). 당신이 나에게 설명해 주시겠습니까? 감사합니다 – longvh92

+0

대답은 업데이 트되었습니다, 예제를 참조하십시오 2 –

관련 문제