2015-03-12 3 views
0

Мне нужно сделать что-то вроде этого. Ниже изображения есть 3 Термины, мне нужно пошевелить срок 3, в разделе Мой Term 1 (Тогда мой срок 3 будет идти как к югу от срока, на мой срок 1.Переместить термин в другой филиал - JSOM

enter image description here

Как я могу achive это использование JSOM, 2013 Sharepoint. Здесь я использовал код, который я использовал для повторного использования термина, но повторное использование означает просто совместное использование. Хотя я повторно использую термин и удаляю его позже, но он удаляет оба. Мне просто нужно двигаться, любая идея ? MSDN не дает метод moveTerm ..

function reuseTerm() { 
 

 
    alert('check reuse'); 
 
    var sourceTermId = 'c0351a3d-5eec-454d-8bc6-4f3ac0992a84'; //Id of source Term 
 
    var destTermId = '2085753f-2804-44c4-b16d-5b93cbbc989d'; //Id of Term below which a reused term will be created 
 

 
    var ctx = SP.ClientContext.get_current(); 
 
    var taxonomySession = SP.Taxonomy.TaxonomySession.getTaxonomySession(ctx); 
 
    var sourceTerm = taxonomySession.getTerm(sourceTermId); 
 
    var destTerm = taxonomySession.getTerm(destTermId); 
 
    
 
    destTerm.reuseTerm(sourceTerm, true);//I need something like destTerm.moveTerm(sourceTerm, true); 
 
    
 
    ctx.executeQueryAsync(
 
     function() { 
 
      alert('Reused term has been created'); 
 
     }, 
 
     function (sender, args) { 
 
      alert(args.get_message()); 
 
     }); 
 

 

 

 
}

ответ

1

Используйте SP.Taxonomy.Term.move Method, чтобы переместить текущий объект Term, чтобы быть ребенком другого срока.

Пример

function moveTerm(sourceTermId,targetTermId,success,error) 
{ 
    var ctx = SP.ClientContext.get_current(); 
    var ts = SP.Taxonomy.TaxonomySession.getTaxonomySession(ctx); 
    var termStore = ts.getDefaultSiteCollectionTermStore(); 
    var sourceTerm = termStore.getTerm(sourceTermId); 
    var targetTerm = termStore.getTerm(targetTermId); 
    sourceTerm.move(targetTerm); 
    ctx.executeQueryAsync(success,error); 
} 

Использование

SP.SOD.registerSod('SP.ClientContext', SP.Utilities.Utility.getLayoutsPageUrl('sp.js')); 
SP.SOD.registerSod('SP.Taxonomy.TaxonomySession', SP.Utilities.Utility.getLayoutsPageUrl('sp.taxonomy.js')); 
SP.SOD.loadMultiple(['SP.ClientContext', 'SP.Taxonomy.TaxonomySession'], function(){ 

    var sourceTermId = 'source-term-guid'; 
    var targetTermId = 'target-term-guid'; 

    moveTerm(sourceTermId,targetTermId, 
    function(){ 
     console.log(String.format('Term {0} has been moved under Term {0}',sourceTermId,targetTermId)); 
    }, 
    function(sender,args){ 
     console.log(args.get_message()); 
    }); 
}); 
+1

Он работает, спасибо много. Его очень сложно найти ресурс для таксономии sharepoint 2013. С этим вы сделали большой вклад. – Chathura