Angularjs:处理项目数据中的外键的最佳方法

时间:2012-10-31 12:45:49

标签: javascript angularjs

我有文件和文件夹。文件夹包含文件。

我从服务器获得的JSON如下所示:

folder: {id: 5, name: "my stuff" }
file: {id: 3, name: "my file", folderId: 5}
file: {id: 5, name: "my file 2", folderId: 5}

构建文件夹 - 文件结构的最佳方法是什么?将文件嵌入文件夹中,如:

{id: 5, name: "my stuff" files: [
    {id: 3, name: "my file", folderId: 5},
    {id: 5, name: "my file 2", folderId: 5}
]},
{id: 6, name: "other things" files: [
    {id: 1, name: "my file", folderId: 6},
    {id: 2, name: "my file 2", folderId: 6}
]}

或者使用仅返回属于文件夹ID的文件的过滤器?像:

<li ng-repeat="folder in folders">
    <ul>
        <li ng-repeat="file in files | fileInFolder:folder.id"></li>
    </ul>
</li>

可以将文件移动到不同的文件夹中!

1 个答案:

答案 0 :(得分:1)

“最佳方式”始终是最容易维护的方式。就我个人而言,我喜欢选项2(过滤器),因为它符合您获得的数据。但是,选项1(json结构)是更好的IMO数据表示。如果您坚持使用该数据结构,那么我猜选项2将是我的选择。

...但我对你的申请结构一无所知。这是持久到数据库吗?什么时候坚持下去?瞬间?或者只有在保存被调用后?很多因素会影响哪种结构最适合您,并且对您的特定解决方案更易于维护。