gpt4 book ai didi

javascript - 如何从术语存储 SharePoint Online 检索多值分类字段

转载 作者:行者123 更新时间:2023-11-28 18:22:33 27 4
gpt4 key购买 nike

我正在尝试使用 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 库尚未加载,在这种情况下,分类字段值作为“轻量级”对象返回(不是 SP.Taxonomy.TaxonomyFieldValueCollection object 类型)。

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

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

以下示例展示了如何:

示例:

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());
});


});

选项 2:在不加载 sp.taxonomy.js 库的情况下获取多个分类字段值

加载sp.taxonomy库时,仍然可以通过_Child_Items_属性检索分类字段值,如下所示:

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)._Child_Items_;
for(var i = 0; i < fieldVal.length; i++) {
var label = fieldVal[i].Label;
var guid = fieldVal[i].TermGuid;
//...
}
},
function(sender,args){
console.log(args.get_message());
});

关于javascript - 如何从术语存储 SharePoint Online 检索多值分类字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39704871/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com