マイ アプリは SharePoint 用語ストアを読み取り、ユーザーの言語に関連付けられたラベルを取得する必要があります。ユーザーの言語と lcid を取得し、次のコードを使用して、分類法の特定のノードの下にあるすべての用語を読み取ります。
... some code to get the Term Store, then Term Group, then Term Set, and finally startTerm
var tsTerms = startTerm.get_terms();
context.load(tsTerms);
context.executeQueryAsync(
function () {
var termsEnum = tsTerms.getEnumerator();
while (termsEnum.moveNext()) {
var currentTerm = termsEnum.get_current();
var termName = currentTerm.get_name();
var userLabel = currentTerm.getDefaultLabel(lcid);
var userLabelValue = userLabel.get_value();
console.log ("Label=", userLabel, userLabelValue)
... more code ...
while ループでは、ラベルを除いて、必要な用語のすべての属性を取得できます。Web で見つけた他のサンプルでは、デフォルトのラベルを取得するために、userLabel オブジェクトがコンテキストに読み込まれ、別の context.executeQueryAsync が呼び出されます。これはすべて理にかなっていますが、これにより SharePoint サーバーへの呼び出しが大量に発生します。
しかし、userLabel オブジェクトをコンソールに書き込むと、タイプ SP.Result として表示され、それを開くと、m_value の下に必要なラベルが表示されます。したがって、サーバーに再度アクセスする必要はありません。ただし、userLabelValue は 0 として返されます。明らかに、get_value() は機能しません。MSDN ドキュメントでは、SP.Result オブジェクト タイプは内部使用専用です。保存されているデータを抽出する方法はありますか?
オブジェクトが展開されたコンソールの写真を添付しました。そこには、取得する必要があるラベルである m_value = "Contrat" がはっきりと表示されています。