我正在尝试使用sencha sdk生成我的缩小文件。
我的页面已设置
http://www.mysite.localhost/ext/jobs/index.html
从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": []
}
即它不包括在我的所有课程中。如果我更新
“path”:“app /”, “name”:“app.js”
app-all.js已正确创建。但是我怎样才能获得控制器和视图。有很多文件。有没有任何一个示例mvc应用程序jsb。我的应用程序基于潘多拉。
应用程序/ 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>
答案 0 :(得分:3)
<强>更新强>
我们无需将所有内容都包含在 app.js 中的 Ext.Loader()中。确保使用 Viewport 类传递 Ext.Loader()数组。仍然要确保使用正确的用途:和要求:。这样你jsb3文件的最终输出就包含了所有内容。
我设法在我的最后解决了这个问题。我需要在 app.js 文件中使用 Ext.Loader()。一般的想法是你需要告诉加载器你的源文件在哪里。确保您的类文件包含在构建中。基于上面代码 app / app.js 。
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();
}
});
我发现在您的视图和控制器类中确保您的视图(例如组合框)附加了商店,您要在 initComponent <中向视图本身添加项 / strong>并且您使用要求:'MyApp.store.Users'作为课程。或者,您将收到奇怪的错误,因为视图将在商店之前初始化。
Ext.Loader.require()必须放在 Ext.Application 之前。一旦你完成了模型和控制器的全部设置,你也会想要添加你的视图。
您现在应该处于创建jsb3文件的好地方,并且看到您的模型,视图和控制器现在是构建过程的一部分。