Trello API中POS实际上是什么意思?

16

我正在使用dillenmeisters的Trello.Net API包装器,在每个Card上它都有一个POS属性。 我以为这是它所在列表中的位置,但数字似乎是任意的,范围从4到5位数不等。 有没有办法让这些数字有足够的意义,在已经存在于列表中的两个卡之间“放置”一个新的Card

1个回答

23

编辑:

Trello.NET 0.5.9-beta1版本现已在NuGet上发布:

// Ways to set the position of a card
trello.Cards.ChangePos(card, 1234)
trello.Cards.ChangePos(card, Position.Top)
trello.Cards.ChangePos(card, Position.Bottom)

我还没有深入研究pos的工作原理,但我认为它是一种排序方式。如果您想在两张卡片之间移动一张卡片,可以获取这两张卡片的位置并将它们的Pos相加然后除以二。

例如,如果您想在Card A和Card B之间插入Card C:

  1. Card A - Pos 16
  2. Card B - Pos 32
  3. Card C - Pos 64

(16 + 32) / 2 = 24. 将Card C的Pos设置为24。

  1. Card A - Pos 16
  2. Card C - Pos 24
  3. Card B - Pos 32

我认为他们这样做是为了在移动卡片时只需更新一个Pos(而不是所有后面的卡片的Pos),如果他们使用没有间隔的顺序Pos,那么更新所有后面的卡片的Pos将是必要的。


4
还注意到每次创建新卡片时,pos 值都会恰好增加 65536(2^16)。这是随机选择的还是有什么特殊意义? - Gaurav Gupta
5
我刚刚尝试在两张卡片之间放置超过16张卡片,此时“pos”数值开始变成小数。例如:77823.5、77823.25、77823.125等。 - Gaurav Gupta
5
我正在研究这个问题,发现了另一个奇怪的事情。就像@GauravGupta指出的那样,每张新卡片的位置会增加65535。因此,如果您在这张卡片之前继续插入卡片,则该位置将不断减半,即32767.5、16383.5、8191.5、4095.9375等等……然而,我发现当我插入一张导致位置小于0.1的卡片时,服务器会返回16384的位置(实际上是65535/4)。这真的没有意义,因为从技术上讲,这张卡片的位置应该在后面,因为它具有更高的值。 - James
2
@CarlosMendes 我不确定,但我猜这只是一个任意的数字,让它们在你继续移动卡片时有很大的范围。顺便说一句,我们在我们的应用程序中采用了这种策略,它运行良好,我们尚未在生产中达到上限。 - James
2
如果我将卡片C插入到卡片A-位置16中,它将比卡片A具有更大的位置,卡片B将保持不变并且平均。但是,如果我将卡片A插入到卡片C中,它的位置会比卡片C小,等于卡片B,并进行平均。特瑞洛(Trello)就是这样做的,这样做正确吗? - Braian Silva
显示剩余8条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接