如何在ExtJS 4-5中的XTemplate中使用异步获取的数据

时间:2015-07-08 14:28:09

标签: javascript templates extjs asynchronous xtemplate

我有一个配置了tpl和商店的数据视图。加载很好。但是,每个记录/模板的一些变量需要通过为每个记录/模板调用不同的外部URL来连续获取。

Ext.define('MyView', {
    extend: 'Ext.view.View',
    store: 'myStore',
    tpl: [ 
        '<tpl for=".">',
        '    <div class="social">',
        '        <div>{id}</div>',
        '        <div>{firstname}</div>',
        '    </div>',
        '</tpl>'
    ],
    itemSelector: 'div.social'
});

如何通过调用一个url来异步设置一些变量值,该url响应一个json对象,在使用模板在视图中呈现这些值之后保存商店中每个记录的值?

根据this question on SO的答案,这是不可能的。 根据{{​​3}},它是:“tpl选项最强大的功能是可以在以后更改数据以更新页面上显示的内容。”

1 个答案:

答案 0 :(得分:0)

通常,您希望后端一次性返回所需的所有数据(以减少请求的数量和时间)。如果您的后端不能这样做和/或您无法控制,那么您可能需要查看Ext JS的关联。
理论上,一旦XTemplate调用了尚未加载的关联,它就会发出加载请求(通过为关联模型配置的代理),然后应该触发&#34;更新&# 34;记录中的事件,然后应该触发&#34;更新&#34;商店上的事件,然后应该触发DataView刷新。