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"];??

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a sharepoint.stackexchange
scroll top