I am trying to use REST API inside JS Link.
SPClientTemplates.TemplateManager.RegisterTemplateOverrides(OverrideFieldContext);
function OverrideFieldContext(ctx) {
var groupingName = ctx.CurrentItem["Grouping"];
prepareTextFieldValue(ctx, groupingName);
return SPField_FormDisplay_Default(ctx);
}
function prepareTextFieldValue(ctx, groupingName) {
var url = _spPageContextInfo.webAbsoluteUrl + '/_api/web/lists(\'' + _spPageContextInfo.pageListId + '\')/items?$select=SomeColumn&$filter=Category eq \'Section\' and Grouping eq \'' + groupingName + '\'';
$.ajax({
url: url,
type: 'GET',
headers: { 'Accept': 'application/json;odata=verbose' },
success: function (data) {
if (data.d.results) {
temp = data.d.results[0].SomeColumName;
return "<span style='color :#f00'>" + temp + "</span>";
}
}
})
debugger;
}
In brief I am pulling some other column information to be overridden on current items' column value.
As JS is async before even code receives the required column value it completes prepareTextFieldValue function and returns back. I need to override value which AJAX call gives me as value on the currentField. Is it possible?