Pregunta

Soy bastante nuevo en el modelo de objeto JavaScript (JSOM) y quiero hacer una llamada simple para obtener un valor de campo.Muy fácil en C #, pero parece que no puedo obtener un valor de campo aunque tenga el 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;
}

No quiero usar una ejecución de ASYNC.Necesito que el valor sea devuelto de inmediato. Ya que tengo la lista de LISTITEM, ¿por qué puedo decir que devuelva LISTITAM ["Título"];??

¿Fue útil?

Solución

CSOM de forma nativa solo permite llamadas asíncronas. Si desea superar eso, puede usar un marco como http://spservices.codeplex.com/

Otros consejos

Solo tiene una referencia al elemento de la lista, pero el elemento de la lista real no le está recuperado desde el servidor hasta que realice el EXECUTUTERYSYNC.

No hasta entonces, tiene alguna información real con la que trabajar.

Licenciado bajo: CC-BY-SA con atribución
scroll top