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]]

展開すると、キーと値のペアNameと値Commentsが表示されます。

私は何が欠けていますか?

[編集]

<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]);

または、それぞれをループしてみることができます。私は口ひげの構文にあまり慣れていませんが、次のようになります

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

//template

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