1

我正在尝试从客户端的 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中的语句时,如下所示:successdata[[object Object],[object Object],[object Object],[object Object]]

当我展开它时,我确实看到了键值对NameComments一个值。

我错过了什么?

[编辑]

<script id="serviceTemplate" type="text/template">
    <li>
        <h4>{{Name}}</h4>
        <div>
            {{Comments}}

        </div>
    </li>
</script>
4

1 回答 1

2

看起来你有一个对象数组。也许在将数据传递给 Mustache 之前尝试索引您的数据。

 var html = Mustache.to_html(template, data[0]);

或者你可以尝试循环遍历每一个。我对 mustache 语法不太熟悉,但它应该看起来像这样

//JS
var html = Mustache.to_html(template, {data: data});

//template

{{#data}}
    <p>{{name}}</p>
    <p>{{comments}}</p>
{{/data}}
于 2013-11-09T19:32:22.250 回答