Extjs addrecords事件在Sencha Touch store上不起作用

Extjs addrecords事件在Sencha Touch store上不起作用,extjs,sencha-touch,sencha-touch-2,Extjs,Sencha Touch,Sencha Touch 2,这是我的密码 Ext.define('MyModel', { extend: 'Ext.data.Model', config: { fields: ['name', { name: 'twitter', type: 'string' }] } }); Ext.define('Fiddle.MyStore', { extend: 'Ext.data.Store', conf

这是我的密码

Ext.define('MyModel', {
    extend: 'Ext.data.Model',
    config: {
        fields: ['name', {
            name: 'twitter',
            type: 'string'
        }]
    }
});

Ext.define('Fiddle.MyStore', {
    extend: 'Ext.data.Store',

    config: {
        model: 'MyModel',
        listeners: {

        }
    },
     addrecords: function(store, records, eOpts) {
                console.log('new recorded have been added.');
                console.log('new recorded number = ' + store.getCount());
            }
});

Ext.application({
    name: 'Fiddle',

    launch: function() {
        Ext.Msg.alert('Fiddle', 'Welcome to Sencha Fiddle!');
        var mystore = Ext.create('Ext.data.Store', {
            data: [{
                name: 'Mitchell Simoens',
                twitter: 'SenchaMitch'
            }, {
                name: 'Jay Garcia',
                twitter: 'ModusJeasus'
            }, {
                name: 'Anthony De Moss',
                twitter: 'ademoss1'
            }]

        });


        mystore.add({
            name: "winston fan",
            twitter: 'WFC'
        });

        //console.log('mystore has ' + mystore.getCount());
    }
});
这是sencha小提琴:

我知道我可以使用mystore.on绑定事件,但在我的情况下很难做到这一点。所以我想把addrecords放到存储的配置中。但不管我把密码放在哪里

   addrecords: function(store, records, eOpts) {
                console.log('new recorded have been added.');
                console.log('new recorded number = ' + store.getCount());
            }
无论是在config节下的侦听器中,还是直接在存储下,都不会触发addrecords事件。它仅在我使用mystore.on'addrecords',函数{};时触发

有人能告诉我如何将事件放入商店的配置中吗


谢谢。

商店配置中的事件是个坏主意,因为它们很容易被覆盖,但它们会进入监听器中。侦听器:{addrecords:函数{…}

实际上,控制器应该使用store.on'addrecords',function….添加侦听器


当然,该框架正在发挥作用;您的代码已损坏;-

嗨,谢普西,你有没有试着把addrecords放在监听器的config下?我试过了,但没用。你知道你定义为Fiddle.MyStore的商店与你的其他代码没有关联吗?Ext.create'Ext.data.Store'。。。稍后使用而不是Ext.create'Fiddle.MyStore'谢谢你对答案的否决票,不管是谁-想解释一下吗?嗨@shepsii,谢谢你的回复。我想您之所以说Fiddle.MyStore与代码的其余部分无关,是因为它们不使用相同的名称空间。但即使我更改了代码,使它们位于同一名称空间下,并将addrecords移动到侦听器中,它仍然不起作用。我两种方法都试过了。你试过了吗?你能提供一个sencha小提琴手来证明你的方法有效吗?嗨,Franva。您正在定义一个类Fiddle.MyStore,然后根本不使用该类,只是恢复到Ext.data.Store。我不想证明定义一个类然后使用它是一种合理有效的编码方法。我会重复我在sencha论坛上说的话。。。我认为您需要阅读一些Sencha Touch书籍,并对框架的最佳实践有一个基本的了解。你遇到的问题表明你对它的工作原理缺乏了解,我认为阅读一些最佳实践对你会有很大帮助。嗨,谢普西,我明白你的意思了。我定义了一个商店,但没有使用它,所以这个甚至没有被解雇。非常感谢。