我试图弄清楚如何使用工厂模型/类来嵌套模型(请参阅此处:https://medium.com/opinionated-angularjs/angular-model-objects-with-javascript-classes-2e6a067c73bc)并使用Firebase备份数据。例如,假设我正在尝试创建一个待办事项列表应用程序,并且我有一堆列表,其中包含许多具有许多详细信息的任务。
使用传统的Angular,我可以通过将'ListCtrl'作为由Array表示的$ scope变量来解决问题。然后,我存储在数组中的项目可能是我使用工厂“任务”定义的模型。然后,每个任务都将使用一个名称进行定义,并且具有一系列详细信息,这些信息将是另一个工厂“详细信息”的实例。
每个细节可能只包含一个'description'字符串。
通过此设置,我可以愉快地为每个工厂添加“实例方法”,例如更改任务的名称或详细信息的描述。
现在输入Firebase。如果我用$ asArray()Firebase数组替换每个List的tasks数组,我将丢失我在工厂定义的实例方法。
我发现这篇文章让我觉得这是我想要的方向,但我似乎无法弄清楚嵌套是如何工作的。
Firebase's AngularFire in an AngularJS service
如果有什么不清楚,我可以详细说明。救命啊!
答案 0 :(得分:1)
您可以自定义$asArray()
使用的工厂来构建您自己的List / Task类实例而不是简单对象。有一些documentation on extending array factories,请务必向下滚动以查看右侧的WidgetFactory示例。我使用它来维护“父”对象的列表,同时允许每个对象为我的数据模型的一个或多个粒度元素维护Firebase同步对象。