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());
});
@Thriggle: Haben Sie einen Vorschlag? – ysfibm