Domanda

function execOperation() {
    var context = SP.ClientContext.get_current();

    //Current Taxonomy Session
    var taxSession = SP.Taxonomy.TaxonomySession.getTaxonomySession(context);

    //Term Stores
    var termStores = taxSession.get_termStores();

    //Name of the Term Store from which to get the Terms.
    var termStore = termStores.getByName(att["data-termname"]);

    $.each(att["data-termset"].split(','), function (i, x) {

        var termSet = termStore.getTermSet(x); //Guid // 5719b9cf-8da0-4a03-bc33-f47c81fb696a
        console.log(termSet.get_name()); // <- this one dont work ofc.

        var terms = termSet.getAllTerms();
        context.load(terms);
        context.executeQueryAsync(function () {

            var termEnumerator = terms.getEnumerator();
            while (termEnumerator.moveNext()) {
                var currentTerm = termEnumerator.get_current().$2_0.$K_0;



                var TermPath = currentTerm.PathOfTerm.split(';');
            }
        });

    })
}

I'm using this code to access my Managed Meta data. The problem I can't seem to solve it how do I get the name of termSet.

As you can see in the image below, I used the guid to load "Menu" from "Popermo Navigation", But when i run console.log(termSet) I cant find the name anywhere.

enter image description here

Is there a way to get the name Aka "Menu"?

As you can see in the image below.

È stato utile?

Soluzione

You need to explicitly load the termSet. JSOM only fetches the data that you request for.

Modify the code as below, will work:

var termSet = termStore.getTermSet(x); //Guid // 5719b9cf-8da0-4a03-bc33-f47c81fb696a

var terms = termSet.getAllTerms();

//load the term set here and request its data
context.load(termSet);

context.load(terms);

context.executeQueryAsync(function () {

    // you will get the name here 
    // need to explicitly load the termset
    console.log(termSet.get_name());

    var termEnumerator = terms.getEnumerator();
    while (termEnumerator.moveNext()) {
        var currentTerm = termEnumerator.get_current();
        // get data from term 
        var TermPath = currentTerm.get_pathOfTerm();
        var TermName = currentTerm.get_name();
    }
});
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a sharepoint.stackexchange
scroll top