単純な文字列を返す2つの関数があります。両方とも登録されています。
$.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テンプレートは両方の関数を呼び出します。日付解析関数が呼び出され、正常に返されます。2番目の関数が呼び出されて何かを返しますが、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呼び出しだけですが、デバッグ中は、関数が何かを返すまでテンプレートは続行されません。だから私は何が起こっているのか途方に暮れています。