1

我试图通过使用 setPercentDone() 方法更改完成的百分比,但我发现它会更改组件的基础数据而不重新渲染它:

Ext.define('CustomApp', {
    extend: 'Rally.app.App',
    componentCls: 'app',

    items: [{
        xtype: 'rallypercentdone',
        percentDone: 0.3,
        listeners: {
            render: function(cmp) {
                console.log('cmp.getPercentDone()',cmp.getPercentDone());
                cmp.setPercentDone(0.5);
                console.log('cmp.getPercentDone()',cmp.getPercentDone());
            }
        }
    }],

    launch: function() {
        //Write app code here
    }
});

安慰:

cmp.getPercentDone() 0.3
cmp.getPercentDone() 0.5

但组件仍然显示 30%

4

1 回答 1

3

PercentDone 组件非常简单,官方不支持更改显示的百分比。有两种解决方法:

创建一个新的 PercentDone 组件

您可以销毁现有的并重新创建它:

this.down('rallypercentdone').destroy();
this.add({
    xtype: 'rallypercentdone',
    percentDone: 0.5
});

通过触摸其内部来更新 PercentDone

这在技术上很糟糕,因为您正在深入研究组件的实现,我们可能会在 SDK 的未来版本中对此进行更改,但在我看来,这也比完全销毁要好:

cmp.update(cmp.renderTpl.apply({ percentDone: 0.5 }));

我会指出,我们应该在未来的版本中进一步充实这个组件。

于 2013-09-06T00:07:32.737 回答