Javascript 如何从术语库SharePoint online检索多值分类字段
我正在尝试使用JavaScript从术语库中检索术语,它可以很好地使用以下代码: 获取单个分类字段的标签: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(
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:你有什么建议吗?