小胡子模板 - 呈现JSON集合

时间:2012-04-09 19:15:13

标签: javascript mustache

我正在尝试呈现一个JSON集合,它是异步检索并使用FireBug我可以看到这最终看起来像:

[{"Id":"00000010"},{"Id":"00000002"},{"Id":"00000003"}]

这不起作用,但如果我将集合声明为:

[{ "Id": "00000004" }, { "Id": "00000005" }, { "Id": "00000006"}]

这是有效的,然后使用FireBug我可以看到这略有不同:

[Object { Id="00000004"}, Object { Id="00000005"}, Object { Id="00000006"}]

为什么在同步检索数据并声明集合时会有所不同?我有什么选择让它发挥作用。

感谢。

更新

我也在使用sammy.js,这是JavaScript:

var app = $.sammy('div[role="main"]', function () {

    this.use('Mustache', 'html');

    this.get('#/', function (context) {
        this.load('/data')
            .then(function (response) {

                context.blah = 'blah';
                context.data = response;

                var data2 = [{ "Id": "00000004" }, { "Id": "00000005" }, { "Id": "00000006"}];
                context.data2 = data2;

                var templateUrl = '@Url.Content("~/Templates/template.html")';

                context.partial(templateUrl);
            });
    });
});

$(function () {
    app.run('#/');
});

以下是模板:

<h1>{{blah}}</h1>
<ul>
{{#data}}
<li>{{Id}}</li>
{{/data}}
</ul>
<ul>
{{#data2}}
<li>{{Id}}</li>
{{/data2}}
</ul>

1 个答案:

答案 0 :(得分:0)

好的,我想出了这个!

context.data = response;

变为

context.data = JSON.parse(response);