SharePoint - Como obter o valor do campo usando JSOM + JSLink sem chamada Assíncrona
-
10-12-2019 - |
Pergunta
Eu sou relativamente novo para o Modelo de Objeto de JavaScript (JSOM) e eu quero fazer uma simples chamada para obter um valor de campo.Muito fácil em C#, mas eu não consigo ficar em um campo de valor, apesar de eu ter ListItem:
overrideContext.Templates.Item = customItem;
function customItem(context) {
var title = context.CurrentItem["Title"];
var img = "<img src='" + getImageUrl(1) + "' />";
return title + img;
function getImgUrl(classID) {
var clientContext = new SP.ClientContext();
var web = clientContext.get_web();
var sourceList = web.get_lists().getByTitle('ClassifiedImages');
var listItem = sourceList.getItemById(classID);
clientContext.load(listItem);
clientContext.executeQueryAsync(Function.createDelegate(this, function () { _returnParam = onSuccess(); }), Function.createDelegate(this, function () { _returnParam = onFail(); }));
return _returnParam;
}
Eu não quero usar um Assíncrono de execução.Eu preciso do valor a ser retornado imediatamente.Desde que eu tenho a listItem, por que não posso simplesmente dizer retornar listItem["Title"];??
Solução
Nativamente CSOM apenas permite chamadas assíncronas.Se você quiser superar isso, você pode usar um quadro como o http://spservices.codeplex.com/
Outras dicas
Você só tem uma referência para o item de lista, mas a lista de item não for obtida a partir do servidor até que você faça o executeQueryAsync.
Não, até então, você tem alguma informação real para trabalhar com.