0

私はSenchaでコントローラーを定義しました。これには、ビューを参照するrefs属性が含まれていますが、自動生成された「get」関数を呼び出して、refs属性に基づいてビューを取得すると、未定義が返されます。これが私の例です:

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

「参照」は、既存のコンポーネントへの参照を作成することです。これまでのところ、クラスを宣言するだけです。投稿した内容から、どこにもインスタンス化したことはありません。

ここでautoCreateに関するドキュメントを読むことをお勧めします:http: //docs.sencha.com/touch/2-1/# !/ api / Ext.app.Controller-cfg-refs

于 2012-12-14T05:09:11.097 に答える