我怎么能用“;var=新的外部面板“;并且只有viewport或Ext.define?(sencha touch 2)


How could I work with "var = new Ext.Panel" and only viewport or Ext.define? (sencha touch 2)

如何使用"var=new Ext.Panel"并且仅使用viewport或Ext.define?

你好,世界!

我对sencha touch 2中的视图、模型和控制器有一些疑问。

我可以这样工作吗?

app.js

Ext.Viewport.add(menu);

app/view/Menu.js

  var list = new Ext.List({
  title: 'Menu',
  itemTpl: [
    '<img src="resources/menu/{icon}" align="center"/>',
    '<span style="margin-left:15px;">{title}</span>'
  ],
  data: [
    {title: 'Sell', icon: 'sell.png'},    {title: 'Warehouse', icon: 'warehouse.png'},
    {title: 'Transfers', icon: 'transfers.png'},
     {title: 'Reports', icon: 'reports.png'}
  ]
});
var menu = new Ext.navigation.View({
  useTitleForBackButtonText: true,
  layout: 'card',
  items: [
    list
  ]
});

当我使用PHP时,我不会遇到问题,因为我的Ext嵌入在PHP文件中,并包含不同的文件。但是,当我使用js文件,并且我想将MVC与sencha cmd一起使用时,我不知道如何指示Ext在每个文件中不声明Ext.define的情况下包括我的视图文件。

综上所述,如何在不使用xtype的情况下引用视图、控制器和模型?,只需调用在js文件中创建的变量。

致以最良好的问候。

你可以这样做。您是否使用Sencha CMD构建了最初的项目?

我相信您仍然需要使用Ext.define(…)来利用ST.中的MVC结构

你可以做一些类似的事情

MyApp/view/MyView.js
var menu = new Ext.List({...etc...});
Ext.define('MyApp.view.Nav', {
    extend: 'Ext.NavigationView',
    items: [{
        list //maybe me.list or this.list if scope is out.
    }, {
        //another nav view card
    }
});
//app.js
Ext.Viewport.add(MyApp.view.Menu);
// if you provide an xtype you can use 
Ext.Viewport.add({xtype: 'myxtype'});