Создание xtype в Sencha Touch 2? - PullRequest
3 голосов
/ 04 марта 2012

Когда я следую за Sencha Touch 2 MVC в сеансе Depth Part 1 от Senchacon 2011, я снова и снова получаю одну и ту же ошибку:

Uncaught Error: [Ext.createByAlias] Cannot create an instance of 
unrecognized alias: widget.homepage

Обычно в extjs4 я бы использовал псевдоним: widget.homepage , и он работал нормально. Но, следуя руководству Эда Спенсера по приложению Sencha Touch MVC, я продолжаю получать ту же ошибку:

APP.JS

Ext.Loader.setConfig({
    enabled:true
});

Ext.application({
    name: 'Sencha',

    controllers: ['Main'],

    launch: function () {
        Ext.create("Ext.tab.Panel", {
            fullscreen: true,
            tabBarPosition: 'bottom',
            items: [
               {
                   xtype: 'homepage'
               }
            ]
        });
    }
});

Просмотр (HOME.JS)

Ext.define('Sencha.view.Home', {
    extend: 'Ext.Panel',
    xtype: 'homepage',
    config: {
        title: 'Home',
        iconCls: 'home',
        cls: 'home',
        html: [
            '<img src="http://staging.sencha.com/img/sencha.png" />',
            '<h1>Welcome to Sencha Touch</h1>',
            "<p>You're creating the Getting Started app. This demonstrates how ",
            "to use tabs, lists and forms to create a simple app</p>",
            '<h2>Sencha Touch (2.0.0)</h2>'
        ].join("");
    }
});

Контроллер (MAIN.JS)

Ext.define('Sencha.controller.Main', {
    extend: 'Ext.app.Controller',
    views: ['Home'],
    init: function () {
        console.log('inited');
    }
});

Ответы [ 2 ]

7 голосов
/ 04 марта 2012

Похоже, они изменились там, где идет определение ваших представлений - вместо 1001 * вместо контроллера появляется main.js.

Так что если вы вырезаете и вставляете views: ['Home'], из main.jsв app.js прямо над определением controllers: ваш пример должен работать.

По моему мнению, в долгосрочной перспективе это хорошая вещь - в основном вы определяете свои представления, контроллеры, модели и т. д. все в одномместо сейчасНо обидно, что, сделав это изменение, любой, кто попытается следовать этому видео с последней и лучшей версией Sencha 2., столкнется с этой проблемой.

РЕДАКТИРОВАТЬ : найденодругая проблема.Когда вы добираетесь до части, где вы добавляете ссылку на контактную форму в контроллере, синтаксис для этого также изменился - он входит в конфигурацию.Добавление этого в контроллер работал для меня:

config: {
    refs: {
        contactForm: {
            selector: '#contactForm'
        }
    }
},
0 голосов
/ 13 марта 2012

В случае, если у кого-то возникла такая же проблема, я определял свойство конфигурации fullScreen (camelCase) вместо полноэкранного (с небольшим регистром).

После того, как я установил, что проблема решена.

...