0

我在 Sencha 中定义了一个控制器,其中包括一个引用我的视图的 refs 属性,但是每当我根据 refs 属性调用自动生成的“get”函数来获取视图时,它都会返回 undefined。这是我的例子:

我在 app/controller/Locals.js 中有以下控制器:

Ext.define('MobileUnion.controller.Locals', {
    extend: 'Ext.app.Controller',

    // Base class methods.
    launch: function () {
        this.callParent(arguments);
    },
    init: function () {
        this.callParent(arguments);
    },

    config: {
        refs: {
        localsEditorView: 'localseditorview',
    },
    control: {
        localsEditorView: {}
    }
    },
    slideUpTransition: { type: 'cover', direction: 'up' },
    onEditLocalsCommand: function() {
        this.activateLocalsEditor();
    },
    activateLocalsEditor: function() {
        var localsEditorView = this.getLocalsEditorView();
        console.log(localsEditorView);  // Returns "undefined" to console.
        Ext.Viewport.animateActiveItem(localsEditorView, this.slideUpTransition);
    }
});

我在 app/views/LocalsEditor.js 中有以下视图:

Ext.define('MobileUnion.view.LocalsEditor', {
    extend: 'Ext.Panel',
    alias: 'widget.localseditorview',

    config: {
        html: 'This is the new view which should show up on top!'
    },
});

因此,在上面的示例中,如果我this.getLocalsEditorView()从控制器内部调用,即使我将 refs 属性设置为localsEditorView: 'localseditorview'并且我定义 MobileUnion.view.LocalsEditor 以包含widget.localseditorview. 当我这样做时,我觉得我应该得到视图。

顺便说一句,我确实在viewsapp.js 的属性中定义了视图,所以不是这样。

更多信息:在我的 webkit 控制台中没有返回实际错误。只是console.log()上面提到的在我的控制器中的调用返回未定义,而不是视图对象。

问题:我必须做什么才能让这个函数返回视图,而不是未定义?任何帮助,将不胜感激。我已经确定这不仅仅是一个错字。似乎不是。

4

1 回答 1

1

“refs”是创建对现有组件的引用。到目前为止,您所做的只是声明一个类,根据您发布的内容,您从未在任何地方实例化它。

您可能想在此处阅读有关 autoCreate 的文档:http://docs.sencha.com/touch/2-1/#! /api/Ext.app.Controller-cfg-refs

于 2012-12-14T05:09:11.097 回答