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

rggaifut  于 2022-11-10  发布在  其他
关注(0)|答案(1)|浏览(146)

我在www.example.com(javascriptSDK)中构建了一个应用Parse.com程序,但对于如何显示从数据库中提取的项目列表,我感到很困惑。
从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"
        }
    ]
}

因此,基本上就是一个文件夹列表,每个文件夹都有名称、所有者、创建时间、更新时间和对象ID。
我想使用underscore.js模板将它们显示在一个列表中。
使用下划线文档,我得出了以下结果:

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

(其中folderList是上面的数组)。
但是除了<ul></ul>之外,它没有显示任何东西--没有错误或任何东西。如果我执行_.size(folderList),它会显示“4”,这是正确的项数。
我不知道我在做什么,也找不到任何关于下划线的好文档。

oknwwptz

oknwwptz1#

我认为你给模板赋值了folderList["results"]而不是folderList。你应该检查一下你是如何给compiled_template函数赋值folderList变量的。

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

相关问题