SDK2:更新纸板上的卡属性

时间:2014-01-02 04:26:49

标签: rally appsdk2

我有纸板,我通过调用显示卡片列表:cardboard.getCards()

我想更新其中一些卡的颜色,所以我遍历卡片,当我找到一个我要更新的卡片时,我会执行以下操作:

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

    record.set('DisplayColor', newColor);

...但它不会改变卡片。但是,如果我因为beforecarddroppedave事件而调用相同的代码,则颜色会立即更改。

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

    this.outstandingUpdates++;
    record.save({callback: function() {
        if (--this.outstandingUpdates === 0) {
            this.cardboard.refresh();
        }
    }, scope: this});

...但是它有点难看,因为你看到电路板刷新,似乎应该有一个更好的方法来做到这一点,就像从beforecarddroppedsave事件中调用一样(如果不是那样,只是有一个回调,而不必计算更新)。

有没有一种更好,更简单的方法可以做到这一点,不需要刷新整个纸板?

1 个答案:

答案 0 :(得分:1)

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

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

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