【问题标题】:How to retrieve term from term store SharePoint online如何从术语库 SharePoint Online 中检索术语
【发布时间】:2016-09-24 01:19:13
【问题描述】:

我有一个 SharePoint 列表,我正在使用 JavaScript 从我的列表中检索元数据,但我有一个问题:如何从术语库中检索包含术语的字段的元数据?

这是我的代码:

function getmetadata()
{ 
    var listGuid = GetUrlKeyValue("List");
    var itemId = GetUrlKeyValue("ID");
    var clientContext = new SP.ClientContext();
    var item = clientContext.get_web().get_lists().getById(listGuid).getItemById(itemId);
    clientContext.load(item);
    clientContext.executeQueryAsync(
        function(){
             var logos = item.get_item("logo2");
             var code = item.get_item("Code_postal_x002d_batiment");
             var Surface = item.get_item("Surface");
             var complement = item.get_item("Secteur_activite_x002d_complement");
             var porteur = item.get_item("Nom_client");
             var mission = item.get_item("Mission_x002d_Artdesk");
             var vedette = item.get_item("photo_x0020_vedette");
             document.getElementById("logo").innerHTML = logos;
             document.getElementById("codepostal").innerHTML = code;
             document.getElementById("surface").innerHTML = Surface;
             document.getElementById("complement").innerHTML = complement;
             document.getElementById("porteur").innerHTML = porteur;
             document.getElementById("mission").innerHTML = mission;
             document.getElementById("photovedette").innerHTML = vedette;

        },
        function(sender,args){
            alert(args.get_message());
        });
}

例如,这是术语库中的术语:“Mission_x002d_Artdesk”,但返回的值为:[object Object]

如何从术语库中检索术语值?

【问题讨论】:

  • 我已经尝试过这段代码并检索到一个错误:varmission = item.get_item('Mission_x002d_Artdesk'); var newsCatLabel = newsCat.get_label(); var newsCatId = newsCat.get_termGuid(); VM79099:15 未捕获类型错误:newsCat.get_label 不是函数

标签: javascript sharepoint sharepoint-online sharepoint-jsom


【解决方案1】:

如果托管元数据字段允许多个值,则对象的类型将是 TaxonomyFieldValueCollection;否则它将是一个 TaxonomyFieldValue

您可以获取单个托管元数据字段值的Label,但不能获取集合;您需要遍历一个集合以获取集合中每个单独值的 Label

获取单值分类字段的标签

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
}

【讨论】:

  • 谢谢我试过这里是我的代码:var fieldValue = item.get_item("Mission_x002d_Artdesk"); var fieldLabel = field.get_label(); document.getElementById("mission").innerHTML = fieldValue;它给我一个错误:VM95670:15 Uncaught ReferenceError: field is not defined
  • 我试过了:var fieldValue = item.get_item("Mission_x002d_Artdesk"); var fieldLabel = fieldValue.get_label(); document.getElementById("mission").innerHTML = fieldLabel ;它给我一个错误:VM431:14 Uncaught TypeError: fieldValue.get_label is not a function
  • 您尝试过枚举器方法吗?
  • 谢谢,get_label() 有问题,应该只有标签
  • 但是这里有一个问题获取多值分类字段的标签:它向我显示一个错误:VM7974:14 Uncaught TypeError: field2Value.getEnumerator is not a function,有什么帮助吗?
猜你喜欢
  • 1970-01-01
  • 2017-05-31
  • 2018-09-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-02
  • 2013-02-28
相关资源
最近更新 更多