JSrender未在模板中显示函数返回
jsrender not displaying function return in template
我有两个返回简单字符串的函数。两者都已注册。
$.views.helpers({
parseDate: function (jsonDate) {
if (jsonDate != null) {
var date = new Date(parseInt(jsonDate.substr(6)));
var newDate = $.fullCalendar.formatDate(date, "MM/dd/yyyy");
return newDate;
}
},
renderPrimaryResource: function (PrimaryResource, LessonID) {
debugger;
$.ajax({
url: "cl/lb",
dataType: "json",
data: { id: PrimaryResource.ResourceID },
type: 'GET',
async: false,
success: function (data) {
var thumbnailImage = data[1];
return thumbnailImage;
}
});
}
});
我的 jsrender 模板调用这两个函数。解析日期函数被调用并按预期返回。第二个函数被调用并返回一些东西,但 jsrender 没有拾取它?不知道会发生什么,但它被完全忽略了。
<script id="LessonDetailTemplate" type="text/x-jsrender">
{{for lessons}}
<div class="row lesson-block">
<div class="span4">
<h4>{{:LessonName}}</h4>
<span><strong>Due on <span>{{:~parseDate(DueDate)}}</span>
<br/>
<p>{{:LessonDescription}}</p>
</div>
<div class="span4">
<span">{{:~renderPrimaryResource(PrimaryResource, LessonID)}}</span>
</div>
</div>
{{/for}}
有人知道为什么这不渲染吗?我唯一能想到的是 ajax 调用,但在调试时模板不会继续,直到函数返回一些内容。所以我对正在发生的事情感到茫然。
回答以防有人偶然发现这一点。问题实际上出在 ajax 调用上。不确定它到底是什么,但您无法从 ajax 调用的成功部分返回字符串。修改了函数如下,工作正常。
renderPrimaryResource: function (PrimaryResource, LessonID) {
debugger;
$.ajax({
url: "cl/lb",
dataType: "json",
data: { id: PrimaryResource.ResourceID },
type: 'GET',
async: false,
success: function (data) {
var thumbnailImage = data[1];
}
});
if(thumbnailImage != null){
return thumbnailImage;
}
}
相关文章:
- 如何限制javascript高亮显示函数的使用次数
- 如何使用javascript返回随机显示函数效果
- 为什么Inspect元素中的错误显示函数myNUM()没有定义?如何定义函数
- I'm试图使用onclick函数显示函数的结果.(javascript)
- jQuery显示函数打印到控制台
- JSrender未在模板中显示函数返回
- 为什么函数 f 中的返回值返回显示函数而不是 x 值
- Ajax 回调显示函数关闭太快
- 如何在网页上显示函数的结果.我想显示平均分数和字母等级.我已经附上了我的代码
- 如何在 HTML 中显示函数的结果
- 在所有项目javascript中显示函数结果
- 简单.显示函数在页面加载时不显示DIV
- ko.mapping在输入字段中显示函数,而不是值
- Javascript-简化了一堆长的重复隐藏/显示函数
- 显示函数JavaScript的文本框
- jquery显示函数不工作
- 如何在jQuery中只隐藏和显示,而不使用任何显示函数
- 在网页上实时显示c#函数进度
- JQuery加载图像前显示()函数
- JSDuck-创建的文档;t显示函数的任何参数