我正在尝试通过客户端的AJAX调用来缓和数据。数据存在于data
函数的success
参数中,但不知何故它不会“看到”它。它不显示应放在模板中的数据。
这是控制器:
[HttpPost]
public object SetFilters(dynamic param)
{
var t = _servrep.GetAvailableServices(param.filters);
return Enumerable.Select(t,(Func<dynamic, dynamic>)
(x => new { x.Name, x.Comments }));
}
这是AJAX调用的成功函数:
success: function (data)
{
//debugger;
//var sdata = JSON.stringify(data);
var template = $('#serviceTemplate').html();
var html = Mustache.to_html(template, data);
$('#servicePlaceholder').html(html);
},
当我取消注释debugger
函数中的success
语句时,data
如下所示:[[object Object],[object Object],[object Object],[object Object]]
当我展开它时,我确实看到键值对Name
和Comments
带有值。
我错过了什么?
[编辑]
<script id="serviceTemplate" type="text/template">
<li>
<h4>{{Name}}</h4>
<div>
{{Comments}}
</div>
</li>
</script>
答案 0 :(得分:1)
看起来你有一个对象数组。也许在将数据传递给Mustache之前尝试索引数据。
var html = Mustache.to_html(template, data[0]);
或者你可以尝试循环每一个。我不太熟悉胡子语法,但看起来应该是这样的
//JS
var html = Mustache.to_html(template, {data: data});
//template
{{#data}}
<p>{{name}}</p>
<p>{{comments}}</p>
{{/data}}