对象#<object>在app init </object>上没有方法'getStore'

时间:2013-05-17 01:49:26

标签: extjs sencha-touch workflow

我正试图在应用程序的init视图中获取Store,但是控制台告诉我:Object #<Object> has no method 'getStore'

我想知道你将如何按照这个顺序获得商店:

  1. 初始化应用
  2. 获取用户GPS位置
  3. 创建商店
  4. 使用商店显示视图
  5.     init: function () { 
            this.callParent();
            console.log("controller init");
        },
        launch: function () {
            this.getApplicationSettings();
            this.getApplicationRegionalisation();
            Ext.getStore("appSettings").setValue("region", "Melbourne");
    
            var store = Ext.create("APN.store.Locations");
            var geo = Ext.create('Ext.util.Geolocation', {
                autoUpdate: false,
                listeners: {
                    locationupdate: function(geo) {
                        var location = store.getClosestLocation(geo.getLatitude(), geo.getLongitude());
                        Ext.getStore("appSettings").setValue("region", location.get("location"));
                    },
                    locationerror: function(geo, bTimeout, bPermissionDenied, bLocationUnavailable, message) {
                    }
                }
            });
    

    然后在视图中我想打电话给这样的话,如果我做了一件蠢事,请纠正我:

        requires: [
            'APN.store.AppSettings'
        ],
    ..... omitted stuff
    
    // in items:
            items: [
                {
                    itemId: 'nav_home',
            id: 'homeView',
                    group: '',
                    title: "Home",
                    layout: 'vbox',
                    slideButton: { selector: 'toolbar' },
                    settingsButton: { selector: 'toolbar' },
                    items: [{
                       xtype: 'articlelist',
                       id: 'latestNews',
                       category: 'Latest',
                       feedUrlName: 
    // here is the place where it bugs out!
    Ext.getStore("appSettings").getValue(Ext.getStore("appSettings").getValue("region").get("menuItems").home.url,
                   }
                    ],
                },
    
    
    

1 个答案:

答案 0 :(得分:1)

无论您在何处创建视图,都可以在此之前创建存储,并将存储显式设置为视图,以便在执行initialize函数时它将获得this.config.store。要在应用初始化时获取GPS位置,您可以在创建商店和视图之前获取Ext.application的启动功能中的位置。如果要仅在加载存储数据后创建视图,则应在存储的加载回调中创建视图。

我希望这就是您所寻找的,如果没有,请在您的问题中添加一些代码,以便我们对具体内容进行评论。