首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Sencha触觉2:同一商店中的两个REST请求

Sencha触觉2:同一商店中的两个REST请求
EN

Stack Overflow用户
提问于 2015-01-11 11:51:54
回答 1查看 202关注 0票数 0

是否可以在同一个存储中包含多个rest/json请求?

例如,我有一个返回json对象的api:

http://api1.domain.com

代码语言:javascript
运行
复制
{"name":"john"},{"name:"harry"}

http://api2.domain.com

代码语言:javascript
运行
复制
{"name":"peter"},{"name:"fred"}

我希望将来自api1和api2的结果合并到一个存储中,以便在一个单独的视图中处理它,所有这些都是串联的。结果:

代码语言:javascript
运行
复制
{"name":"john"},{"name:"harry"},{"name":"peter"},{"name:"fred"}

或者没有连接,但我可以在一个单独的视图中同时调用这两个api : john harry peter fred

这个是可能的吗?

我正在尝试,但没有成功:

代码语言:javascript
运行
复制
Ext.application({
    name: 'sencha',
    views: ['Main1'],
    models:['AdModel'],
    stores:['AdStore1','AdStore2'],
    launch: function () {

    var store1Obj = Ext.getStore('AdStore1');
    var store2Obj = Ext.getStore('AdStore2');

    store1Obj.each(function(record){
        var copiedRecord = record.copy();
    store2Obj.add(copiedRecord);
    });

    Ext.create('Ext.DataView', {
        fullscreen: true,
        store: store2Obj,
        itemTpl: '<tpl for="."><div><strong>{name}</strong></div></tpl>'
        });
    }

});
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-12 11:23:59

首先,您使用了store http://docs-origin.sencha.com/touch/2.4/2.4.1-apidocs/#!/api/Ext.data.Store-method-eachstore方法的错误语法。

然后,简单地将两个不同的数据源添加到同一个存储区中。

代码语言:javascript
运行
复制
Ext.application({
    name: 'Fiddle',

    launch: function() {

        // Set up a model to use in our Store
        Ext.define("User", {
            extend: "Ext.data.Model",
            config: {
                fields: [{
                    name: "name",
                    type: "string"
                }]
            }
        });

        // Setup the stores
        var myStore1 = Ext.create("Ext.data.Store", {
            model: "User",
            data: [{
                "name": "john"
            }, {
                "name": "harry"
            }],
            autoLoad: true
        });

        var myStore2 = Ext.create("Ext.data.Store", {
            model: "User",
            data: [{
                "name": "peter"
            }, {
                "name": "fred"
            }],
            autoLoad: true
        });

        // Loop through each record of store2 adding it to store1
        myStore2.each(function(item, index, length) {
            myStore1.add(item);
        });

        Ext.create("Ext.List", {
            fullscreen: true,
            store: myStore1,
            itemTpl: "{name}"
        });
    }
});

演示:https://fiddle.sencha.com/#fiddle/g6n

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27886710

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档