Angularjs 如何使用AngularFire将对象与子数组同步
你们好,天使大师 我有一个简单的网站和一些画廊。库名称和内容与其他少量数据一起保存在Firebase中 我想将整个树与Angular同步,以允许管理员编辑页面上的任何内容 这就是我同步它的方式,它主要工作Angularjs 如何使用AngularFire将对象与子数组同步,angularjs,firebase,angularfire,Angularjs,Firebase,Angularfire,你们好,天使大师 我有一个简单的网站和一些画廊。库名称和内容与其他少量数据一起保存在Firebase中 我想将整个树与Angular同步,以允许管理员编辑页面上的任何内容 这就是我同步它的方式,它主要工作 var ref = new Firebase("https://profile-web.firebaseio.com/"); // create an AngularFire reference to the data var sync = $firebase(ref); // downloa
var ref = new Firebase("https://profile-web.firebaseio.com/");
// create an AngularFire reference to the data
var sync = $firebase(ref);
// download the data into a local object
var syncObject = sync.$asObject();
// synchronize the object with a three-way data binding
syncObject.$bindTo($scope, "data");
。。。大部分
不起作用的是更新数据。我认为这是因为树中包含的对象以数组作为子对象。AngularFire需要使用$asArray()来处理数组。它过滤掉Angular的ng repeat添加的$$hashkey,并中断更新过程$asObject()不会这样做
我尝试用$asArray()绑定整个树,但由于它不是数组,所以失败了
所以我的问题是:如何将作为对象的整个树与作为子对象的数组以及作为子对象的数组同步
我这里有一份工作副本
非常感谢您的时间和努力。谢谢大家! 你为什么反对?为什么我们要同步数据,而不仅仅是要处理的集合?AngularFire是一个用于同步对象和数组的绑定库,而不是整个Firebase树的本地副本。如果按照这些链接中的解释,数据以良好的NoSQL格式进行排列,生活就会简单得多。如果有这样的用例,请解释它。数据是按逻辑顺序组织的,项目足够小,可以一次下载所有数据并保持整体同步。同步原语是angularfire的一个难题,我不想手动保存每个更新。3路数据绑定非常有用,但显然它对包含数组的对象没有用处。阵列是用来维持秩序的。例如,示例库具有具有特定顺序的图像。我不想提出这么多要求,难道没有其他办法吗?当你说“编辑页面上的任何内容”时,你是什么意思?管理员是否可以一次查看每个图库中的每张照片,并从单个页面重命名/删除/添加照片和图库?如果查看网站,您可以看到以下可编辑元素:名称、3个主要链接(标题、图像、url、图库中的图像)、2个简历链接(图像、标题、url)。每个主链接中的每个图像都有名称、可选描述和URL。所有这些都应该是可编辑的。我明白,正确的解决方案不是对整个数据结构提出一个请求,而是对每个分支进行非规范化,例如在一个主链接中分别制作链接url、链接图像和标题的链接图像。不过很糟糕。它不像我想的那样是面向对象的,而是关系型的。