Создание новых наборов и терминов таксономии и термины во время развертывания Office 365 SharePoint Online App VS 2013
-
10-12-2019 - |
Вопрос
Я только что начал создавать Office 365 SharePoint Online Apps, используя Visual Studio 2013, и я хочу добавить термин на термин, установленный в хранилище термина по умолчанию.Добавлен функция JavaScript в файле App.js, чтобы отключить, когда документ готов.Я последовал за примером онлайн и использовался в основном тот же код, изменяя имена и такие.Я могу развернуть приложение к моему сайту, но ничего не происходит.Код компилируется нормально и без ошибок времени выполнения.Термин не добавляется к набору термина.Я совершенно новый CSOM, так что мне интересно, забываете ли я забыть нагрузка или звонок запроса.Вот код, который я использую:
$(document).ready(function () {
var scriptbase = _spPageContextInfo.webServerRelativeUrl + "_layouts/15/";
$.getScript(scriptbase + "SP.Runtime.js",
function () {
$.getScript(scriptbase + "SP.js", function () {
$.getScript(scriptbase + "SP.Taxonomy.js", execOperation);
});
}
);
getUserName();
.
});
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();
//Term Store under which to create the group.
var termStore = termStores.getByName("Taxonomy_/ClwSKVzefj+f2V6rXnmig==");
//Term Set under which to create the term.
var termSet = termStore.getTermSet("8ed8c9ea-7052-4c1d-a4d7-b9c10bffea6f");
//Name of the term, LCID and a new GUID for the term.
var newTerm = termSet.createTerm("Shaun", 1033, "b49f64b3-4722-4336-9a5c-56c326b344a9");
context.load(newTermSet);
context.executeQueryAsync(function(){
alert("Term Created: " + newTerm.get_name());
},function(sender,args){
console.log(args.get_message());
});
.
}
Мне интересно, о линии кода, установленная переменная сценария, если это проблема, но я не уверен, если она есть.
заранее спасибо, Shaun
Решение
Ваш код отлично работал для меня, кроме одного:
context.load(newTermSet);
.
должен быть
context.load(newTerm);
.
Похоже, что вы делали имя переменной переменной.
Редактировать Кроме того, если вы не в коллекции корневой площадки вашего веб-приложения, вам нужно поставить ведущую косоюзную колючку перед _layouts в вашем сценарем загрузке.