sp.taxonomy.js
ライブラリがロードされていないと、その場合の分類フィールドの値に「軽量」として返されるので、あなたは、このエラーを取得しているほとんどの場合オブジェクト(ではなくのSP.Taxonomy.TaxonomyFieldValueCollection objectタイプ)。
オプション1(推奨):SP.Taxonomy
名前空間は分類フィールド値を扱うための標準的な方法ではないだけを提供しているのでsp.taxonomy
ライブラリで複数のタクソノミーのフィールド値を取得し得ることが
まず第一に、私はこの方法をお勧めしますが、 JSOMを介してManaged Metadata APIを操作する方法です。
例を表す複数分類フィールドの値を取得ロードされていることを確認:
次の例では、方法を示し
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());
});
});
オプション2:複数のタクソノミーのフィールドを取得するには、以下に示すようsp.taxonomy
ライブラリはをロードされ、分類フィールドの値がまだ_Child_Items_
プロパティを介して取得することができない場合sp.taxonomy.js
ライブラリは
をロードなし値:
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:あなたは何か提案がありますか? – ysfibm