如何在Sencha Architect 2中添加“Ext.require”

时间:2012-05-09 15:56:48

标签: sencha-touch-2 sencha-architect

根据说明here,为了使用Native API,我需要在代码中添加一个'Ext.require()'。我如何在Sencha Architect 2中做到这一点?看起来自定义函数或事件之外的所有内容都是只读的,所以我不能只是自己添加自己的代码。

3 个答案:

答案 0 :(得分:3)

正如Bharat Nagwani所建议的,架构师现在提供了一种方法来要求任何你想动态加载的类。

Luca Candela和我提交了一个小应用程序,它说明了几周前在伦敦使用Ext.device.Camera API。 https://github.com/CaliLuke/NativeContacts

要在您的应用程序中包含设备api,请执行以下操作:

  • 进入Sencha SDK并将设备文件夹复制到项目目录中
  • 在Architect内部,单击“应用程序”节点
  • 在配置面板中搜索“需要”
  • 将“Ext.device.Camera”添加到require配置
  • 在配置面板中搜索“loader”
  • 单击Loader Config
  • 右侧的+
  • 单击新添加的“Loader”节点(Application的子节点)
  • 添加路径'{“Ext.device”:“device /”}

总而言之,请确保文件存在。告诉应用程序您需要该类,然后告诉加载器在哪里找到您刚刚放入项目文件夹的文件。

答案 1 :(得分:2)

Architect提供的下一次更新需要作为Application节点上的属性,因此您可以在那里添加。现在只需在Application启动函数中添加需求,因为它是可写的。

答案 2 :(得分:0)

需要代码的视图(或适用的MVC)定义了此要求,因此只有在需要时才会调用它。

Ext.define('MyApp.view.SomePageView', {
    extend: 'Ext.Panel',
    alias: 'widget.somepageview',

    requires: [
        'Ext.device.Camera', // requires go here!
        '...'
    ]

对于本机要求(不是自定义扩展),请查看Sencha Docs上的右侧列。对于此示例,对于ST2.3.1,它可以位于here。在顶部,您可以看到Ext.device.Camera直接从Ext.Base下降,不需要Ext.device。在定义的那个需求块的底部,有Camera.js的链接。打开该链接,您可以准确地看到发生了什么。通过定义requires: ['Ext.device.Camera'],您还可以自动加载所有这些操作要求。

在Architect中定义主MVC或S时,它会添加到Application Requires中。所以在Architect中,我将能够看到Application>下列出的SomePageView。 Ext.app.Controller>观点。在构建过程中,无论是使用Architect的构建,还是使用Sencha Cmd进行sencha app build之类的命令行调用,这个需求下载链都将包含在最终的包中。