javascript - 控制台错误 : Unrecognized alias: widget. feedform

标签 javascript extjs sencha-touch extjs6 extjs6-modern

我遇到以下问题。当我按下 feeds.js 文件夹中的添加新 Feed 按钮时,应该调用 onNewFeed 函数(位于 MainController.js 文件中) ),控制台出现错误:

Unrecognized alias: widget.feedform

当我在文件需要:['FeedViewer.view.main.FeedForm']中添加MainController.js时,控制台显示:

[Ext.Loader] error Some requested files failed to load.

文件夹结构:

//FeedViewer
    //app
        //view
           //main
               /MainController.js
               /MainModel.js
    //classic
    //modern
        //src
            //view
                //main
                    /FeedForm.js
                    /Feeds.js
                    /Main.js

MainController.js

Ext.define('FeedViewer.view.main.MainController', {
    extend: 'Ext.app.ViewController',
    alias: 'controller.main',

    onNewFeed: function () {
        var navView = this.getView(),
            form = navView.child('feedform');

        if (!form) {
            navView.push({
                xtype: 'feedform',
                reference: 'feedform'
            });
        } else {
            navView.setActiveItem(form);
        }
    }
});

FeedForm.js

Ext.define('FeedViewer.view.main.FeedForm', {
    extend: 'Ext.form.Panel',
    xtype: 'feedform',

    requires: [
        'Ext.Button',
        'Ext.field.Select',
        'Ext.form.FieldSet',
        'Ext.Toolbar'
    ],

    title: 'New RSS Feed',

    items: [{
        xtype: 'fieldset',
        items: [{
            xtype: 'selectfield',
            label: 'Select a new feed',
            labelAlign: 'top',
            allowBlank: false,
            name: 'feedUrl',
            options: [{
                value: 'http://rssfeeds.usatoday.com/usatoday-NewsTopStories', 
                text: 'USA Today Top Stories'
            }, {
                value: 'http://sports.espn.go.com/espn/rss/news', 
                text: 'ESPN Top News'
            }]
        }]
    }, {
        xtype: 'toolbar',
        docked: 'bottom',
        items: [{
            xtype: 'button',
            reference: 'savebutton',
            action: 'save',
            ui: 'action',
            text: 'Add'
        }]
    }]
}); 

Feeds.js

Ext.define('FeedViewer.view.main.Feeds', {
    extend: 'Ext.grid.Grid',

    xtype: 'feedslist',

    requires: [
        'ContactsApp.view.feeds.MainController',
        'ContactsApp.view.feeds.MainModel'

    ],

    viewModel: 'feeds',
    controller: 'feeds',

    columns: [{
        dataIndex: 'feed',
        text: 'feed'
    }],

    items: [{
        xtype: 'toolbar',
        docked: 'left',
        items: [{
            xtype: 'button'
            text: 'Add New Feed',
            iconCls: 'fa fa-plus',
            listeners: {
                click: 'onNewFeed'
            }
        }]
    }]
});

Main.js

Ext.define('FeedViewer.view.main.Main', {
    extend: 'Ext.tab.Panel',
    xtype: 'app-main',

    requires: [
        'Ext.window.MessageBox',

        'FeedViewer.view.main.MainController',
        'FeedViewer.view.main.MainModel',
        'FeedViewer.view.main.List'
    ],

    controller: 'main',
    viewModel: 'main',
    layout: 'column',

    items: [{
        xtype: 'feedlist',
        columnWidth: 0.5
    }]
});

最佳答案

Ext 尝试动态加载组件,看起来 feedform 未正确注册。

<小时/>

你尝试过添加

alias: 'widget.feedform',

到您的 FeedForm.js

<小时/>

Panel.js 作为比较:

https://docs.sencha.com/extjs/6.2.0/classic/src/Panel.js.html

关于javascript - 控制台错误 : Unrecognized alias: widget. feedform,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51296007/

相关文章:

android - Android 和 Phonegap 中的推送通知

javascript - Bootstrap 3 工具提示高度

javascript - 卡片布局面板未在 Sencha Touch 2.2 中呈现

java - 通过 Ajax 请求的 Servlet 流

javascript - Ext JS,全局更改网格列配置默认值

facebook - 如何创建 facebook 移动应用程序导航栏?

javascript - 状态正在更新到组件,但 props 未定义

javascript - 如何获取新的 jQuery 元素并在其后插入新的另一个元素?

Javascript:从嵌套函数内部访问父属性

javascript - 在 Extjs 6 modern 中存储不绑定(bind)数据到 View