Я создаю две переменные, основанные на вызове ajax. Функция запускается при загрузке страницы, и переменные не меняются после загрузки страницы.Kendo Grid Template- Использование Javascript Variable в шаблоне
var approvalLevel;
var fullName;
$(function() {
$.ajax({
type: "GET",
async: "false",
url: approvalLevelURL,
contentType: "application/json",
context: this,
dataType: "jsonp",
crossDomain: true,
success: function (data) {
getUser(data);
}
});
});
function getUser(data) {
approvalLevel = data.ApprovalLevel;
console.log(approvalLevel);
fullName = data.FullName;
console.log(fullName);
};
Тогда я хотел бы использовать эти переменные в моем всплывающем шаблоне окна кендо. Всплывающее окно открывается командой «Просмотреть детали» в моей сетке кендо, а функция showDetails начинается с щелчка View Details.
var wnd, detailsTemplate;
wnd = $("#details")
.kendoWindow({
title: "Customer Details",
modal: true,
visible: false,
resizable: false,
width: 300
}).data("kendoWindow");
detailsTemplate = kendo.template($("#template").html());
});
function showDetails(e) {
e.preventDefault();
var dataItem = this.dataItem($(e.currentTarget).closest("tr"));
wnd.content(detailsTemplate(dataItem));
wnd.center().open();
}
К сожалению, когда отладчик попадает в "wnd.content (DetailsTemplate (DataItem))", выдается ошибка о том, что approvalLevel не определено.
Я не уверен, что мне нужно сделать, чтобы сделать эту работу. Я попытался сделать содержимое окна URL-адресом из вызова ajax и использовал «data.ApprovalLevel». Ошибка не была выбрана, но значение все еще не определено.
Я также пробовал 'wnd.content (detailsTemplate (dataItem, approvedLevel, fullName))', который тоже не работает.
Шаблон не будет читать функции, но он правильно распознает другие поля, которые относятся к источнику данных кендо.
Это код шаблона:
<script type="text/x-kendo-template" id="detailTemplate">
<div id="tabs2">
<div id="cpTab2">
# if (ChangeControlTypeApprovalLevel == 1) {#
<ul>
<li><label>Request Review: </label>
<p>No initial review required for a level one change</p>
</li>
<li class="comments"><label>Comments: </label>
<p>No initial review required for a level one change</p>
</li>
</ul>
#} else if (Status.toLowerCase().contains("approval")) {#
# if (ChangeControlTypeApprovalLevel == 2 && approvalLevel >= 2) {#
<ul>
<li><label>Request Review: </label>
<table id="horizontal-list" class="reviewStatus">
<tr>
<td><label> Reviewed By: </label><br/> #= fullName #</td>
<td><label> Reviewed Date: </label><br/>#= getToday() #</td>
<td><label> Reviewed Status: </label><br/><input name="approved" data-bind="value:approved" class="dropDownApproval" /></td>
</tr>
</table>
</li>
<li><label>Comments: </label>
<li><textarea type="text" class="k-input k-textbox" name="Comments" data-bind="value:Comments"></textarea></li>
<li><button class="k-button" onclick="initialReviewTab">Submit</button></li>
</li>
</ul>
#} #
</div>
</div>
</script>
Любая помощь будет принята с благодарностью. Некоторое время я застрял на этом.