Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Extjs 从sencha sdk创建所有类_Extjs_Extjs4_Extjs Mvc - Fatal编程技术网

Extjs 从sencha sdk创建所有类

Extjs 从sencha sdk创建所有类,extjs,extjs4,extjs-mvc,Extjs,Extjs4,Extjs Mvc,我正在尝试使用sencha sdk生成我的缩小文件 我把我的页面设置在 仅从index.html读取是不容易的。我进去的时候 sencha create jsb -a http://www.mysite.localhost/ext/jobs/index.html -p app.jsb3 我得到以下jsb文件 { "projectName": "Project Name", "licenseText": "Copyright(c) 2011 Company Name",

我正在尝试使用sencha sdk生成我的缩小文件

我把我的页面设置在

仅从index.html读取是不容易的。我进去的时候

sencha create jsb -a http://www.mysite.localhost/ext/jobs/index.html -p app.jsb3
我得到以下jsb文件

{
    "projectName": "Project Name",
    "licenseText": "Copyright(c) 2011 Company Name",
    "builds": [
        {
            "name": "All Classes",
            "target": "all-classes.js",
            "options": {
                "debug": true
            },
            "files": []
        },
        {
            "name": "Application - Production",
            "target": "app-all.js",
            "compress": true,
            "files": [
                {
                    "path": "",
                    "name": "all-classes.js"
                },
                {
                    "path": "",
                    "name": "app.js"
                }
            ]
        }
    ],
    "resources": []
}
这不包括我所有的课程。如果我更新

路径:app/, 名称:app.js

app-all.js已正确创建。但是我怎样才能得到控制器和视图呢。有很多文件。是否有任何一个mvc应用程序jsb示例。我的应用程序是基于潘多拉的

app/app.js

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

        name: 'Pandora',
        models: ['Part', 'Material', 'Job', 'Process', 'Invoice', 'InvoiceDetail', 'PurchaseOrder'],
        stores: ['SalesContact', 'Parts', 'Materials', 'Jobs', 'AccountHandlers', 'JobTypes', 'Processs', 'Artwork', 'Varnish', 'VarnishType', 'PrintType', 'ProofRequired', 'InvoiceDetails', 'PurchaseOrders'],
  controllers: ['Part', 'Material', 'Job', 'Process', 'Invoice'],
        launch: function () {

            Ext.QuickTips.init();
            var cmp1 = Ext.create('App.view.Jobs', {
                renderTo: "form-job"
            });
            cmp1.show();
        }

    });
index.html

<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <script type="text/javascript" src="ext-all-debug.js"></script>
    <script type="text/javascript" src="app/app.js"></script>
</head>
<body>
    <div id="form-job"></div>
</body>
</html>
更新

我们不需要在app.js中包含Ext.Loader中的所有内容就可以实现这一点。确保将数组与视口类一起传递给Ext.Loader。仍然要确保您执行了正确的用法:并且需要:。这样,jsb3文件的最终输出就包含了所有内容

我设法解决了这个问题。我需要在app.js文件中使用Ext.Loader。一般的想法是你需要告诉加载程序你的源文件在哪里。确保类文件包含在生成中。基于上面的app/app.js代码

我发现,在视图和控制器类中,请确保是否将存储绑定到视图(如组合框),即在initComponent中将项目添加到视图本身,并为类使用requires:'MyApp.store.Users'。或者您将收到奇怪的错误,因为视图将在存储之前初始化

Ext.Loader.require必须放在Ext.Application之前。使用模型和控制器完成所有设置后,您还需要添加视图


您现在应该处于创建jsb3文件的好位置,并且可以看到您的模型、视图和控制器现在是构建过程的一部分。

目前我自己也有同样的问题。我缺少我的用户体验、控制器和视图。它设法找到我的商店和模型。就这样。我正在寻找requires:属性如何在视口中发挥作用。你给它一个视图数组,你就可以推断出控制器。其他一些有用的提示很好,谢谢。明天我要再做一次关于这个的讨论。我会发布我的发现。总是乐于助人。如果答案确实有用,别忘了把它当作有用的。我们自己应该有另一个会议来讨论sencha sdk和这个主题。另一件值得补充的事情是,如果你的应用程序上有身份验证,在大多数情况下,你会想在生成文件时禁用它。我在localhost和PhantomJS/1.1.0用户代理上进行检测,以便在我想要重新生成所有类文件列表时自动禁用我的类文件。必须指出,SDK工具在启动和运行时有点笨拙。我不得不深入研究源代码几次,以解决奇怪的行为。我希望他们能开放SDK的源代码,因为我对代码做了一些修改,以帮助他们构建同一应用程序的多个版本。此外,我们还可以帮助记录它的工作原理。听起来像是不久的将来的一篇主题博客文章!
Ext.Loader.setConfig({ enabled: true });

// SDK builder required source files, use the class names.
Ext.Loader.require(['Pandora.view.Viewport']);

Ext.application({

    name: 'Pandora',
    models: ['Part', 'Material', 'Job', 'Process', 'Invoice', 'InvoiceDetail', 'PurchaseOrder'],
    stores: ['SalesContact', 'Parts', 'Materials', 'Jobs', 'AccountHandlers', 'JobTypes', 'Processs', 'Artwork', 'Varnish', 'VarnishType', 'PrintType', 'ProofRequired', 'InvoiceDetails', 'PurchaseOrders'],
    controllers: ['Part', 'Material', 'Job', 'Process', 'Invoice'],
    launch: function () {

        Ext.QuickTips.init();
        var cmp1 = Ext.create('App.view.Jobs', {
            renderTo: "form-job"
        });
        cmp1.show();
    }

});