在 Sencha Touch MVC 框架中声明和调用视图时出错。

Posted

技术标签:

【中文标题】在 Sencha Touch MVC 框架中声明和调用视图时出错。【英文标题】:Getting error while declaring and calling view in Sencha Touch MVC framework. 【发布时间】:2012-03-01 10:15:45 【问题描述】:

我是 sencha touch mvc 框架的新手,我在 android os 上使用 version1.1.1。我在演示应用程序中创建了控制器和视图。我的 app.js 和 viewport.js 出现错误。

这里是 app.js:-

Ext.regApplication(
    name: 'MyApp',
    defaultUrl: 'Home/index',
    launch: function()
    
        this.viewport = new MyApp.view.viewport();
    ,
);

这里是 viewport.js:-

MyApp.view.viewport = Ext.extend(Ext.Panel,

   fullscreen: 'true',
   layout: 'card',
   cardSwitchAnimation: 'slide',
   dockedItems: [
   
    xtype: 'toolbar',
    title: 'MvcTouch',
   ,
   ],
);

现在我的问题是,当我使用上述代码运行我的应用程序时,出现以下错误。

1) TypeError: Result of expression 'MyApp.view' [undefined] is not an object. at file:///android_asset/www/app/view/viewport.js:9

2) TypeError: Result of expression 'MyApp.view' [undefined] is not an object. at file:///android_asset/www/app/app.js:6

我根据Sencha的核心开发人员here解释的标准编写代码。但是当我换行时

MyApp.view.viewport = Ext.extend(Ext.Panel,

viewport = Ext.extend(Ext.Panel, in viewport.js

换行

this.viewport = new MyApp.view.viewport();

this.viewport = new viewport(); 在 app.js 中

该应用程序运行良好。现在我不了解当我不使用 sencha 的标准约定时它运行良好并且当我使用标准约定时它不运行的代码。 谁能告诉我这里发生了什么。任何帮助将不胜感激。提前谢谢。

【问题讨论】:

【参考方案1】:

在 Sencha Touch 1.1.1 中,应用程序视图是用“视图”而不是“视图”定义的。所以,试试这个:

MyApp.views.viewport = Ext.extend(Ext.Panel,

那么这应该可以正常工作。

【讨论】:

是的,它只是一个文件夹,Sencha Touch 1.1.1 没有映射。但是在 Sencha Touch 2.0 中你会看到文件夹和类名映射的很准确。

以上是关于在 Sencha Touch MVC 框架中声明和调用视图时出错。的主要内容,如果未能解决你的问题,请参考以下文章

Sencha Touch MVC 最佳实践

在 EXTJS 和 Touch Apps 之间共享遵循 MVC 模式的功能 - Sencha Workspace

在 Sencha Touch MVC 应用程序中更新子面板

sencha touch 2 中的谷歌地图实现(MVC 方式)

在 Sencha Touch MVC 中实现 Google Maps Directions

如何使用视图通过 MVC 在 Sencha Touch 2.0 中放置一个按钮