AngularFire:使用' order'扩展$ firebaseArray属性可以轻松地检索子命令

时间:2016-07-05 02:10:43

标签: firebase firebase-realtime-database angularfire

对于我的Waitlist应用程序,我使用$firebaseArray来同步guest虚拟机队列。来宾数组按等待时间排序(即将来宾儿童添加到$firebaseArray后的时间)。

每位客人都应该能够看到自己的订单,而不是其他等待的客人。因此,对于列表中的每个访客,我希望将他们当前的订单保持为一个属性,例如, orderInLine

例如:

guests: {
    guest1: {
        name: "John",
        orderInLine: 1
    },
    guest2 {
        name: "Jane",
        orderInLine: 2
    }
    ...
}

我目前的解决方法是遍历列表,直到找到匹配项并将循环索引用作行中的位置:

// Find place in line for selected guest
for (var i = 0; i < guests.length; i++) {
    if (guests[i] === selectedGuest) {
        selectedGuest.orderInLine = i + 1;
    }
}

一个问题是我需要为此操作加载所有来宾。

我假设/希望解决方案是$extend $firebaseArray以及每个$$added$$removed$$moved保留orderInLine属性为每个孩子更新,但我还没有找到一个很好的实现。

任何帮助解决这个问题将不胜感激。这是fiddle playground.

0 个答案:

没有答案