asp.net - 带有 JSON 集合的 Mustache JS 模板

标签 asp.net json mustache

您好,这是我第一次尝试在 .net 中使用 MustacheJS 和 JSON Web 服务

目前我正在努力,我似乎​​找不到我在设置这个基本示例时做错了什么:

我的 Web 服务正在返回以下字符串:

[
  {
    "ShortDescription":"BOX",
    "Description":"BOXING",
    "Id":1
  },
  {
    "ShortDescription":"EPL",
    "Description":"ENGLISH PREMIER LEAGUE",
    "Id":2
  }
]

我已通过此网站验证了其语法:http://json.parser.online.fr/

这是我正在使用的 HTML 代码:

google.load("jquery", "1");
google.setOnLoadCallback(function () {
    $(document).ready(
        function () {

            $.ajax({
                url: "../data.asmx/geteagues",
                type: "POST",
                dataType: "json",
                data: "",
                contentType: "application/json; charset=utf-8",
                success: function (data) {
                    var template = "<h1>{{ShortDescription}} {{Description}}</h1>";
                    var html = Mustache.render(template, data);
                    $('#sampleArea').html(html);
                    alert(html);
                }
            })

        }
    )
});

我发布了整个 JS 代码,因为我不太擅长 javascript,基本上我想始终从 google 加载最新的 JQuery 版本,然后进行 WS 调用。

到目前为止的问题是,当我在以下行中放置断点时:

 var html = Mustache.render(template, data);

我看到模板已设置好,数据也已设置好,与我上面发布的值相同,但 .render 函数正在返回:

我似乎不喜欢数据。

到目前为止,我见过的所有内联数据示例都具有以下结构:

{
  "repo": [
    { "name": "resque" },
    { "name": "hub" },
    { "name": "rip" },
  ]
}

然后定义一个模板,如下所示:

{{#repo}}
  <b>{{name}}</b>
{{/repo}}

但与我的数据的唯一区别是我没有像“repo”这样的“父级”

在服务器端,我使用一个名为 JSON.net 的 .net 库,并在有关如何序列化集合的文档中:

james.newtonking.com/projects/json/help/html/SerializingCollections.htm

最终结果不包括父节点的名称,我认为我的 Mustache 模板定义中缺少该名称:

[
  {
    "Name": "Product 1",
    "ExpiryDate": "2000-12-29T00:00Z",
    "Price": 99.95,
    "Sizes": null
  },
  {
    "Name": "Product 2",
    "ExpiryDate": "2009-07-31T00:00Z",
    "Price": 12.50,
    "Sizes": null
  }
]

这就是我所缺少的吗?我的数据中的“repo”父节点,以便我可以迭代我的模板?

预先感谢您的宝贵时间。

-ed

最佳答案

@stealth 就这个问题 Mustache.js: Iterate over a list received via json

    {{ #. }}
        <b>{{Name}}</b>
    {{ /. }}

请注意,与 @stealth 的答案的唯一区别是“#”而不是“/”。

关于asp.net - 带有 JSON 集合的 Mustache JS 模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11819006/

相关文章:

javascript - 未捕获的语法错误 : Unexpected token : for a valid JSON

python/flask/Jinja2 和 Json

ruby - Mustache & Sinatra - 是否可以省略 view.rb 文件?

php - 使用 PDO 从表 mySQL 制作模型

JavaScript 不会隐藏 asp.net 中的文本区域

asp.net - 如何允许匿名用户访问虚拟目录

ASP.NET:如何正确重定向出现 404 错误的请求?

asp.net - AjaxFileUpload 选择后自动上传文件

json - 如何在Flutter中解析长度为1的JSON数组?

javascript - 如何将 JavaScript 事件监听器预添加到使用 Mustache 生成的元素?