0

我正在 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 是上面的数组)。

但这并没有显示任何东西,除了<ul></ul>- 没有错误或任何东西。如果我这样做_.size(folderList),它会显示“4”,这是正确的项目数。

我不知道自己在做什么,也找不到关于 Underscore 的任何好的文档。

4

1 回答 1

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));
于 2012-09-03T13:29:36.503 回答