Extjs 从sencha sdk创建所有类
我正在尝试使用sencha sdk生成我的缩小文件 我把我的页面设置在 仅从index.html读取是不容易的。我进去的时候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 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();
}
});