ExtJS Grid的渲染器函数回调

时间:2012-04-16 17:52:27

标签: javascript extjs extjs4

我有一个渲染器函数,它必须从商店加载一些数据才能返回一个值,但是我还没弄清楚如何将我想要的内容返回到网格列。

{header: 'Manager First Name', 
renderer: function(value, meta, record){
    record.Managers().load({
        scope: this,
        callback: function(managers, operation, success){
            if(success && managers){
               managers[0].getPerson({
                    scope: this,
                    callback: function(person, operation){
                        if(person){
                            return person.get("firstName");
                        } else {
                            console.error('This manager doesn\'t have a person record.');
                            return '';
                        }
                    }
                });
            } else {
                console.error('No manager record for the shop '+record.getId());
            }
        }
    });
}}

我尝试将return置于loadgetPerson功能前面无济于事。我也想过要发射一个事件,但我不确定那会怎么样。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

我会在渲染主网格之前加载您的附加信息。这样在renderer()函数中,您将使用已经加载的数据。

否则您的渲染器函数将被多次调用,并且您将在异步加载商店时遇到一些大麻烦。