我需要将术语名称作为参数传递,并在SharePoint 2013,JSOM中返回该特定术语的GUID
作为一个例子,如果我通过“我的第1项”,它应该返回相应的“我的第1项”的GUID。
var termGuid=getTermByName('My Term 1');
function getTermByName(TermName){
return term.get_id();
}
答案 0 :(得分:0)
SP.Taxonomy.TermStore.getTerms Method可用于在Term中查找TermStore。
以下示例演示了如何使用JSOM通过Label查找Term:
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());
});
});