SharePoint - 비동기 호출없이 JSOM + JSLink를 사용하여 필드 값을 가져 오는 방법
-
10-12-2019 - |
문제
JavaScript 객체 모델 (JSOM)의 새로운 기능이며 필드 값을 얻으려면 간단한 호출을 원합니다.C #에서 매우 쉽습니다. 그러나 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;
}
.
비동기 실행을 사용하고 싶지 않습니다.즉시 반환 할 값이 필요합니다. ListItem이 있기 때문에 왜 ListItem [ "title"]을 반환 할 수는 없습니까???
해결책
기본적으로 CSOM은 비동기 호출 만 허용합니다. 이를 극복하려는 경우 http://spservices.codex.com//a>와 같은 프레임 워크를 사용할 수 있습니다.
다른 팁
목록 항목에 대한 참조 만 있지만 실제 목록 항목은 ExecuteQueryAsync를 수행 할 때까지 서버에서 가져 오지 않습니다.
그때까지는 실제 정보가 없으므로
제휴하지 않습니다 sharepoint.stackexchange