SP.Taxonomy.TermStore.getTerms Method могут быть использованы для нахождения Term в TermStore.
В следующем примере показано, как найти Term ярлыком с помощью JSOM:
function findTermsByLabel(label,success,error)
{
var ctx = SP.ClientContext.get_current();
var ts = SP.Taxonomy.TaxonomySession.getTaxonomySession(ctx);
var matchInfo = new SP.Taxonomy.LabelMatchInformation(ctx);
matchInfo.set_termLabel(label);
matchInfo.set_trimUnavailable(true);
var termMatches = ts.getTerms(matchInfo);
ctx.load(termMatches);
ctx.executeQueryAsync(
function(){
var terms = termMatches.get_data();
success(terms);
},
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 termLabel = '--term label goes here--';
findTermsByLabel(termLabel,
function(terms){
if(terms.length == 0)
console.log('Term has not been found');
else if(terms.length > 1)
console.log(String.format("Several Terms exist with '{0}' label",termLabel));
else {
console.log(String.format('Term has been found: {0}'),terms[0].get_id().toString());
}
},
function(sender,args){
console.log(args.get_message());
});
});
Я попробовал этот код, но он всегда дает «Срок не был найден» .. еще не уверен в причине .. (Я правильно назвал существующий термин) – Chathura