0

Ich versuche Begriffe aus Zeitspeicher abzurufen JavaScript verwenden, ist es mit diesem Code nur gut funktionieren: das Etikett der einzelnen Taxonomie Feld Get:Wie Mehrwert Taxonomy Feld von Zeitspeicher Sharepoint abzurufen Online

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

Ich habe ein Problem, Etiketten von einem mehrwertigen Taxonomiefeld abzurufen? Ich habe schon versucht, diese

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 
} 

Aber es funktioniert nicht

+0

@Thriggle: Haben Sie einen Vorschlag? – ysfibm

Antwort

2

Höchstwahrscheinlich werden Sie diesen Fehler werden immer da sp.taxonomy.js Bibliothek wurde als „Leichtgewicht“ in diesem Fall Taxonomie Feldwert zurück nicht geladen und Objekt (nicht von SP.Taxonomy.TaxonomyFieldValueCollection object Typ).

Option 1 (empfohlen): immer mit sp.taxonomy Bibliothek mehr Taxonomie Feldwerte immer

Zunächst einmal würde ich diesen Ansatz empfehlen, da SP.Taxonomy Namespace für den Umgang mit Taxonomie Feldwerten nicht nur eine Standardmethode bietet aber auch eine Möglichkeit, mit Managed Metadata API über JSOM zu arbeiten.

Das folgende Beispiel zeigt, wie Sie:

Beispiel

stellt geladen:

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


}); 

Option 2: mehrere Taxonomie Feld immer Werte ohnesp.taxonomy.js Bibliothek

Wenn sp.taxonomy Bibliothek ist nicht geladen, Wert Taxonomie Feld noch über _Child_Items_ Eigenschaft geladen, wie unten gezeigt, abgerufen werden kann:

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