显示underscore.js列表中的所有项目(使用Parse.com)

时间:2012-09-03 11:14:52

标签: javascript backbone.js underscore.js parse-platform

我正在Parse.com(javascriptSDK)中构建一个应用程序,并且我不知道如何显示我从数据库中提取的项目列表。

当他们从Parse中获取时,这些项目采用这种格式:

{
    "results":[
        {
            "name": "End of summer", 
            "owner": {
                "__type": "Pointer", 
                "className": "_User", 
                "objectId": "D4ttcoN6ex"
            }, 
            "createdAt": "2012-09-03T09:21:50.144Z", 
            "updatedAt": "2012-09-03T09:21:50.144Z", 
            "objectId": "Xp8Mz24fI3"
        }, {
            "name": "My summer holidays", 
            "owner": {
                "__type": "Pointer", 
                "className": "_User", 
                "objectId": "D4ttcoN6ex"
            }, 
            "createdAt": "2012-09-03T09:17:15.515Z", 
            "updatedAt": "2012-09-03T09:17:15.515Z", 
            "objectId": "hjqVThNgXu"
        }, {
            "name": "My summer", 
            "owner": {
                "__type": "Pointer", 
                "className": "_User", 
                "objectId": "D4ttcoN6ex"
            }, 
            "createdAt": "2012-09-03T09:17:31.139Z", 
            "updatedAt": "2012-09-03T09:17:31.139Z", 
            "objectId": "0UEHHXtyBG"
        }, {
            "name": "First day of school", 
            "owner": {
                "__type": "Pointer", 
                "className": "_User", 
                "objectId": "D4ttcoN6ex"
            }, 
            "createdAt": "2012-09-03T09:21:37.315Z", 
            "updatedAt": "2012-09-03T09:21:37.315Z", 
            "objectId": "W1OKKwLXmz"
        }
    ]
}

所以,基本上是一个文件夹列表,每个文件夹都有一个名字,所有者,createdAt,updatedAt和一个objectId。

我想使用underscore.js模板在列表中显示这些内容。

使用下划线文档,我提出了这个:

<ul>
    <% _.each( folderList["results"], function( listItem ) { %>  
        <li><%= listItem["name"] %></li>
    <% }); %>
</ul>

(其中folderList是上面的数组)。

但除了

之外,这并没有显示任何内容 - 没有任何错误或任何错误。如果我_.size(folderList),则会显示“4”,这是正确的项目数。

我真的不知道我在做什么,也找不到任何关于下划线的好文档。任何人都可以通过回答我的问题或指向我的某些文档来帮助我吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

我认为您将folderList["results"]分配给模板而不是folderList。您应该检查如何将folderList变量分配给compiled_template函数。

compileFolderList=function(folderList){
      var compiled_template=_.template(' <ul><% _.each( folderList["results"], function( listItem ) { %>    <li><%= listItem["name"] %></li><% }); %></ul>'); //Compile template string 

      var html=compiled_template({'folderList':folderList}); // Assign variables that used in the template.
      return html;
}

var folderList={"results":[{"name":"End of summer","owner":{}}]};
$("body").append(compileFolderList(folderList));