1

I have a SharePoint list and I'm retrieving metadata from my list using JavaScript, but I have one issue: how to retrieve metadata of a field that contains terms from the term store?

Here's is my code:

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

For example this is a term from term store: "Mission_x002d_Artdesk", but the value returned is: [object Object]

How can I retrieve the term value from term store?

Thriggle
  • 7,009
  • 2
  • 26
  • 37
ysfibm
  • 436
  • 2
  • 14
  • 30
  • I've tried this code and retrieve me an error: var mission = item.get_item('Mission_x002d_Artdesk'); var newsCatLabel = newsCat.get_label(); var newsCatId = newsCat.get_termGuid(); VM79099:15 Uncaught TypeError: newsCat.get_label is not a function – ysfibm Sep 08 '16 at 14:18

1 Answers1

1

If the managed metadata field allows multiple values, the object will be of type TaxonomyFieldValueCollection; otherwise it'll be a single TaxonomyFieldValue.

You can grab the Label of single managed metadata field values, but not on collections; you'd need to loop through a collection to grab the Label on each individual value in the collection.

Getting the label of a single-value Taxonomy Field

var fieldValue = item.get_item("FieldName");
var fieldLabel = fieldValue.Label;

Getting the label(s) of a multi-value Taxonomy Field

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
}
Thriggle
  • 7,009
  • 2
  • 26
  • 37
  • thanks i tried it here's my code : var fieldValue = item.get_item("Mission_x002d_Artdesk"); var fieldLabel = field.get_label(); document.getElementById("mission").innerHTML = fieldValue; It rtrieve me an error : VM95670:15 Uncaught ReferenceError: field is not defined – ysfibm Sep 09 '16 at 09:00
  • i tried it : var fieldValue = item.get_item("Mission_x002d_Artdesk"); var fieldLabel = fieldValue.get_label(); document.getElementById("mission").innerHTML = fieldLabel ; it retieve me an error :VM431:14 Uncaught TypeError: fieldValue.get_label is not a function – ysfibm Sep 09 '16 at 12:13
  • Did you try the enumerator approach? – Thriggle Sep 09 '16 at 20:35
  • thanks, there problem was with get_label() it should be only Label – ysfibm Sep 23 '16 at 17:02
  • however is here an issue Getting the label(s) of a multi-value Taxonomy Field : it shows me an error :VM7974:14 Uncaught TypeError: field2Value.getEnumerator is not a function , any help? – ysfibm Sep 23 '16 at 17:27