完成ui组件设置百分比完成百分比不会影响显示的内容

时间:2013-09-05 23:50:54

标签: rally appsdk2

我试图通过使用方法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
    }
});

console:

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

但该组件仍显示30%

1 个答案:

答案 0 :(得分:3)

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

创建一个新的PercentDone组件

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

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

通过触摸其内部

更新PercentDone

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

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

我要记下,我们应该将这个组件更多地用于将来的发布。