对于我的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.