使用jsom在Sharepoint中获取术语及其子术语

问题描述

我设法获得一组术语中的所有术语,但是我只对获得特定术语及其子术语感兴趣。我已经遵循了https://sharepoint.stackexchange.com/questions/78514/accessing-terms-in-term-store-using-jsom-in-sharepoint-2013这个问题的答案,但我只需要得到一个学期,而我却不能得到

解决方法

尝试如下所示的代码段:

   <script type="text/javascript">
$(document).ready(function(){   

    var scriptbase = _spPageContextInfo.webServerRelativeUrl + "_layouts/15/";

    $.getScript(scriptbase + "SP.Runtime.js",function () {
            $.getScript(scriptbase + "SP.js",function(){

                $.getScript(scriptbase + "SP.Taxonomy.js",function(){
                
                execOperation('3797f7a9-7902-47c1-a5bb-44b6ccaca1b4');
                
                }); 

            });
        }
    );

});

function execOperation(parentTermId) {
    var context = SP.ClientContext.get_current();
    var session = SP.Taxonomy.TaxonomySession.getTaxonomySession(context);
    var termStore = session.getDefaultSiteCollectionTermStore();
    
    //var parentTermId = '3797f7a9-7902-47c1-a5bb-44b6ccaca1b4'; //parent Term Id
    var parentTerm = termStore.getTerm(parentTermId);
    var terms = parentTerm.get_terms();  //load child Terms
    
    
    context.load(terms);
    context.executeQueryAsync(
    function(){
       //print child Terms
       for(var i = 0; i < terms.get_count();i++){
           var term = terms.getItemAtIndex(i);
           console.log(term.get_name());
           if(term.get_termsCount() > 0)
           {
              execOperation(term.get_id());
           }
           
       }
    
    },function(sender,args){
      console.log(args.get_message());    
    });

}
 
</script>

参考:

SharePoint2013 Taxonomy get all child term of a specific parent term using JSOM

更新有关调试代码段的一些详细信息,以供您参考:

enter image description here

enter image description here