Javascript 如何从术语库SharePoint online检索多值分类字段

Javascript 如何从术语库SharePoint online检索多值分类字段,javascript,sharepoint,sharepoint-online,csom,sharepoint-jsom,Javascript,Sharepoint,Sharepoint Online,Csom,Sharepoint Jsom,我正在尝试使用JavaScript从术语库中检索术语,它可以很好地使用以下代码: 获取单个分类字段的标签: var fieldValue = item.get_item("FieldName"); var fieldLabel = fieldValue.Label; 检索多值分类法字段的标签有一个问题? 我试过这个 var fieldValue = item.get_item("FieldName"); var taxEnumerator = fieldValue.getEnumerator(

我正在尝试使用JavaScript从术语库中检索术语,它可以很好地使用以下代码: 获取单个分类字段的标签:

var fieldValue = item.get_item("FieldName");
var fieldLabel = fieldValue.Label;
检索多值分类法字段的标签有一个问题? 我试过这个

var fieldValue = item.get_item("FieldName");
var taxEnumerator = fieldValue.getEnumerator();
while(taxEnumerator.moveNext()){
    var currentTerm = taxEnumerator.get_current();
    var label = currentTerm.Label;
    // do something with the label here
}

但它不起作用

很可能是因为未加载
sp.taxonomy.js
库,在这种情况下,分类字段值作为“轻量级”对象返回(不是类型的

选项1(推荐):使用
sp.taxonomy
库获取多个分类字段值

首先,我推荐这种方法,因为
SP.Taxonomy
名称空间不仅提供了处理分类字段值的标准方法,而且还提供了通过JSOM使用托管元数据API的方法

以下示例显示了如何:

  • 确保已加载sp.taxonomy.js库
  • 获取表示以下内容的多个分类字段值:
例如:

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

var ctx = SP.ClientContext.get_current();
var list = ctx.get_web().get_lists().getByTitle(listTitle);
var item = list.getItemById(itemId);
ctx.load(item);

ctx.executeQueryAsync(
   function(){

      var fieldVal = item.get_item(fieldName); 

      for(var i = 0; i < fieldVal.get_count(); i++) {
         var label = fieldVal.get_item(i).get_label();
         var guid = fieldVal.get_item(i).get_termGuid();
         //...
      }       
   },
   function(sender,args){
       console.log(args.get_message());
   });


});

很可能是因为未加载
sp.taxonomy.js
库,在这种情况下,分类字段值作为“轻量级”对象返回(不是类型的

选项1(推荐):使用
sp.taxonomy
库获取多个分类字段值

首先,我推荐这种方法,因为
SP.Taxonomy
名称空间不仅提供了处理分类字段值的标准方法,而且还提供了通过JSOM使用托管元数据API的方法

以下示例显示了如何:

  • 确保已加载sp.taxonomy.js库
  • 获取表示以下内容的多个分类字段值:
例如:

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

var ctx = SP.ClientContext.get_current();
var list = ctx.get_web().get_lists().getByTitle(listTitle);
var item = list.getItemById(itemId);
ctx.load(item);

ctx.executeQueryAsync(
   function(){

      var fieldVal = item.get_item(fieldName); 

      for(var i = 0; i < fieldVal.get_count(); i++) {
         var label = fieldVal.get_item(i).get_label();
         var guid = fieldVal.get_item(i).get_termGuid();
         //...
      }       
   },
   function(sender,args){
       console.log(args.get_message());
   });


});

@你有什么建议吗?@Thriggle:你有什么建议吗?