Rally SDK2:更新硬纸板上的卡属性

Rally SDK2:更新硬纸板上的卡属性,rally,appsdk2,Rally,Appsdk2,我有一张硬纸板,通过调用carboard.getCards()可以得到一张卡片列表 我想更新其中一些卡片的颜色,因此我对这些卡片进行迭代,当我找到一张我想更新的卡片时,我会执行以下操作: var record = card.getRecord(); var newColor = '#ff0000'; record.set('DisplayColor', newColor); …但它不会改变卡片。但是,如果由于beforecarddroppedsave事件调用相同的

我有一张硬纸板,通过调用carboard.getCards()可以得到一张卡片列表

我想更新其中一些卡片的颜色,因此我对这些卡片进行迭代,当我找到一张我想更新的卡片时,我会执行以下操作:

    var record   = card.getRecord();
    var newColor = '#ff0000';

    record.set('DisplayColor', newColor);
…但它不会改变卡片。但是,如果由于beforecarddroppedsave事件调用相同的代码,则颜色会立即更改

通过一点实验,如果我遵循record.set()行,我有了一个解决方案:

    this.outstandingUpdates++;
    record.save({callback: function() {
        if (--this.outstandingUpdates === 0) {
            this.cardboard.refresh();
        }
    }, scope: this});
…但它有点难看,因为你看到了电路板刷新,似乎应该有更好的方法来做到这一点,这样它就像从beforecarddroppedsave事件调用时一样(如果不是这样的话,只需要一次回调,而不必计算更新)

有没有更好、不那么难看的方法,不需要刷新整个纸板?

卡片有一个方法(它是私有的-不知道为什么-你必须显示私有方法才能在文档中看到它)。这就是所有Rally应用程序刷新单个卡的方式

因此,使用reRender的简化代码是:

record.set('DisplayColor', color);
record.save({callback: function() { card.reRender(); });

这个很好用——谢谢!!!也许下一个版本可以将其设置为公共功能?当然可以。它基本上已经公开了,但只是缺少文档。