【问题标题】:How to read inline data written in a store from a controller in Sencha Touch 2.0 mvc如何从 Sencha Touch 2.0 mvc 中的控制器读取写入存储中的内联数据
【发布时间】:2011-11-15 11:43:04
【问题描述】:

我正在学习煎茶,所以我有一个非常基本的问题。 我正在尝试构建一个简单的 mvc 应用程序,其中包含控制器、视图模型和存储。

我有这个nmodel

Ext.define('rpc.model.Studenti', {
Extend: 'Ext.data.Model',
fields: [
    { name: 'cognome', type: 'string' },
    { name: 'previsione', type: 'string' }
]
});

这个商店(带有内联数据)

Ext.define('rpc.store.Studenti', {
model: 'rpc.model.Studenti',
storeId: 'gruppoStore',
autoLoad: true,
data: [
    {cognome: 'uno', previsione: 'aaa'},
    {cognome: 'due', previsione: 'bbb'},
    {cognome: 'tre', previsione: 'ccc'}
]
});

控制器

Ext.define('rpc.controller.Home', {
extend: 'Ext.app.Controller',
stores: ['Studenti'],
models: ['Studenti'],
views: ['home.Fila','home.Griglia','home.Previsio'],
store: 'gruppoStore',
init: function() {
    this.control({
        'griglia button': {
            tap: this.faqualcosa
        }
    });
},
faqualcosa: function(button){
    ...
    var gruppoStoreMgr=this.getStudentiStore();

    alert (gruppoStoreMgr.count());
    for (var key in gruppoStoreMgr) {           
        //alert (key);
    }
    alert (gruppoStoreMgr.storeId);
    alert (gruppoStoreMgr.isInstance);
    //alert (gruppoStoreMgr.data);
    alert (gruppoStoreMgr.autoLoad);
    for (var key in gruppoStoreMgr.data[0]) {
        //alert ("0"+key);
    }
    for (var key in gruppoStoreMgr.data[1]) {
        //alert ("1"+key);
    }
}
});

请问,在 faqualcosa 函数中访问商店数据的正确方法是什么? 我已经能够使用 var gruppoStoreMgr=this.getStudentiStore(); 获得模型的实例(确保它非常接近......)。但我没有记录我在商店中写入的数据(“uno”,“due”....)。如何获取这些数据?如何在控制器函数中拥有一个引用存储中真实数据的对象?

【问题讨论】:

    标签: model-view-controller controller store sencha-touch-2


    【解决方案1】:
    this.getStudentiStore().data.items
    

    这是获取数据的最直接方式。它返回一个模型记录数组。如果这就是你要找的。​​p>

    for(var i = 0; i < this.geStudentiStore().getCount(); i++ ) {
       var record = this.getStudentiStore().getAt(i)
       console.log(record.get('cognome'));
    }
    

    这应该打印出所有的“cognomes”

    【讨论】:

    • 真正的问题是商店文件中的缺失。我错过了扩大商店基地。添加行扩展:'Ext.data.Store' 我已经开始做一些事情了。无论如何感谢您的回答 stan229
    猜你喜欢
    • 2011-12-22
    • 1970-01-01
    • 1970-01-01
    • 2012-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-31
    • 2012-01-13
    相关资源
    最近更新 更多