7

私は口ひげについて素晴らしいことを聞いて、それを試してみることにしました。

jQueryでMustacheテンプレートを使用する方法を理解しようとしています。私は今、数日探しています。

口ひげはここで見つけることができます:https ://github.com/janl/mustache.js/

これが私の試みです:

$.getJSON('get_fullname.asp', {name: 'johnny'}, function(data, status, xhr) {

    var template = '<h1>{{NAME}}</h1><p>test</p>';
    strHTML = Mustache.to_html(template, data);
    $('#container').html( strHTML );

});

私のJSONデータは[{"NAME":"John","MIDDLE":"A","LAST":"Smith"}]

私が得るのは<p>test</p>

私もこのテンプレートを使用してみましたが、それでも取得し<p>test</p>ます。

var template = '{{#NAME}}<h1>.</h1>{{/NAME}}<p>test</p>';

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

4

2 に答える 2

8

一見すると、JSONオブジェクトは配列にネストされているように見えます。その周りの[]を削除して、機能するかどうかを確認します。これは、サーバーレベル(私がお勧めします)またはjavascriptで次のように呼び出すことで実行できます。

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

それ以外の:

strHTML = Mustache.to_html(template, data);
于 2011-04-01T17:47:07.463 に答える
3

良い習慣として、配列を出力していない場合、サーバーは要求から配列を返さないようにする必要があります。

JSONにシリアル化されている場合でも、この結果を得るには、ソース構造がオブジェクトの配列または(PHPのように)連想配列の配列のようなものである必要があります。

本当に必要なのが名前のリストを印刷することである場合は、「。」を繰り返す必要があります。このフィドルのように:http://jsfiddle.net/viniciuspires/3e5cs/

{{#.}}
<li>{{last}}, {{name}}.</li>
{{/.}}

これは、1つの名前に対してのみ同じ結果を生成しますが、より多くの名前を取得するとリストが拡張されます。

于 2013-06-11T19:02:16.407 に答える