许多类在使用配置对象创建(实例化)类时都有快捷名称。快捷名称被称为 alias
(如果类扩展了 Ext.Component,则称为 xtype
)。别名/xtype 列在适用类的类名旁边,以供快速参考。
框架类或其成员可以指定为 private
或 protected
。否则,类/成员为 public
。Public
、protected
和 private
是访问描述符,用于传达应如何以及何时使用类或类成员。
公共 (Public) 类和类成员可供任何其他类或应用程序代码使用,并且在主要产品版本中可以作为稳定且持久的内容被依赖。公共类和成员可以通过子类安全地扩展。
受保护 (Protected) 的类成员是稳定的 public
成员,旨在由拥有类或其子类使用。受保护的成员可以通过子类安全地扩展。
私有 (Private) 类和类成员在框架内部使用,不供应用程序开发人员使用。私有类和成员可能会随时更改或从框架中省略,恕不另行通知,并且不应在应用程序逻辑中依赖。
static
标签。*请参阅下面的静态。下面是一个类成员示例,我们可以对其进行剖析以展示类成员的语法(在本例中是从 Ext.button.Button 类查看的 lookupComponent 方法)。
让我们看一下成员行的每个部分
lookupComponent
)( item )
)Ext.Component
)。对于不返回除 undefined
之外的任何内容的方法,可以省略此项,或者可以显示为以正斜杠 /
分隔的多个可能值,表示返回的内容可能取决于方法调用的结果(即,如果 get 方法调用成功,则方法可能返回 Component,如果失败,则返回 false
,这将显示为 Ext.Component/Boolean
)。PROTECTED
- 请参阅下面的标志部分)Ext.container.Container
)。如果成员来自当前类,则源类将显示为蓝色链接,如果成员从祖先类或混入类继承,则显示为灰色。view source
)item : Object
)。undefined
之外的值,则“返回值”部分将注释返回的类或对象类型以及描述(示例中为 Ext.Component
)Available since 3.4.0
- 示例中未显示),紧随成员描述之后Defaults to: false
)API 文档使用许多标志来进一步传达类成员的功能和意图。标签可以用文本标签、缩写或图标表示。
classInstance.method1().method2().etc();
false
,则标记为可阻止的事件将不会触发- 表示框架类
- 单例框架类。*有关更多信息,请参阅单例标志
- 组件类型框架类(Ext JS 框架中扩展 Ext.Component 的任何类)
- 表示类、成员或指南在当前查看的版本中是新的
- 表示类型为 config
的类成员
- 表示类型为 property
的类成员
- 表示类型为 method
的类成员
- 表示类型为 event
的类成员
- 表示类型为 theme variable
的类成员
- 表示类型为 theme mixin
的类成员
- 表示类、成员或指南在当前查看的版本中是新的
在 API 文档页面上的类名称下方是一行按钮,对应于当前类拥有的成员类型。每个按钮显示按类型划分的成员计数(此计数会随着应用过滤器而更新)。单击该按钮将导航到该成员部分。将鼠标悬停在成员类型按钮上将显示该类型的所有成员的弹出菜单,以便快速导航。
与类配置选项相关的 Getter 和 Setter 方法将显示在方法部分以及 API 文档和成员类型菜单的配置部分中,紧挨着它们所作用的配置下方。Getter 和 Setter 方法文档将在配置行中找到,以便于参考。
您的页面历史记录保存在本地存储中,并显示在顶部标题栏下方(使用可用的实际空间)。默认情况下,显示的唯一搜索结果是与您当前查看的产品/版本匹配的页面。您可以通过单击历史记录栏右侧的 按钮并选择“全部”单选选项来扩展显示的内容。这将显示所有产品/版本的所有最近页面历史记录栏。
在历史记录配置菜单中,您还将看到最近访问页面的列表。结果按“当前产品/版本”和“全部”单选选项进行过滤。单击 按钮将清除历史记录栏以及本地存储中保存的历史记录。
如果在历史记录配置菜单中选择“全部”,则“在历史记录栏中显示产品详细信息”复选框选项将启用。选中后,每个历史页面的产品/版本将与历史记录栏中的页面名称一起显示。将光标悬停在历史记录栏中的页面名称上也会将产品/版本显示为工具提示。
可以使用页面顶部的搜索字段搜索 API 文档和指南。
在 API 文档页面上,还有一个过滤器输入字段,它使用过滤器字符串过滤成员行。除了按字符串过滤外,您还可以按访问级别、继承和只读过滤类成员。这是通过使用页面顶部的复选框完成的。
API 类导航树底部的复选框过滤类列表以包含或排除私有类。
单击空的搜索字段将显示您最近 10 次搜索,以便快速导航。
每个 API 文档页面(JavaScript 原始类型页面除外)都有一个与该类相关的元数据菜单视图。此元数据视图将具有以下一项或多项
Ext.button.Button
类具有 Ext.Button
的备用类名称)。备用类名称通常为了向后兼容性而维护。可运行的示例 (Fiddle) 默认在页面上展开。您可以使用代码块左上角的箭头单独折叠和展开示例代码块。您还可以使用页面右上角的切换按钮切换所有示例的折叠状态。切换所有状态将在页面加载之间记住。
类成员默认在页面上折叠。您可以使用成员行左侧的箭头图标或全局使用右上角的展开/折叠所有切换按钮来展开和折叠成员。
在较窄的屏幕或浏览器上查看文档将导致针对较小外形尺寸优化的视图。桌面视图和“移动”视图之间的主要区别在于
可以通过单击 API 文档页面顶部的类名称来查看类源代码。可以通过单击成员行右侧的“查看源代码”链接来查看类成员的源代码。
在本演练中,我们将构建一个员工目录应用程序。本指南将提供有关如何使用 Architect 4.0+ 构建 Ext JS Modern 应用程序的基本理解。
步骤 1:启动 Architect
首先,您将下载 Architect 并创建一个空白项目。
从此处下载 Architect
在您的计算机上启动 Architect,并在必要时注册或继续试用订阅
在初始 Architect 对话框中,单击新建项目
选择您的框架:在“新建项目”窗口的右上角选择 Ext JS 6.0.x Modern
选择项目格式:单击空白项目,然后单击创建。这将创建空的应用程序结构,我们将在其中添加组件和应用程序逻辑来构建我们的员工目录。
步骤 2:添加标签页面板并保存项目
我们的应用程序的导航框架是使用标签页面板创建的,允许我们在员工目录列表和公司信息标签页之间导航。
在 Architect 右侧的工具箱面板中,搜索“标签页面板”。
将“标签页面板”组件从“容器”组拖到设备画布上。
单击左上角工具栏中的“保存”按钮,然后从菜单中单击“保存”。
提供 Architect 应用程序将保存到的保存路径。
输入项目名称。这也将是您的应用程序在保存路径中的目录。对于本演练,请使用“EmployeeDirectory”。
键入应用程序名称。这将是应用程序中所有输出类文件使用的命名空间。对于本演练,输入“EmpDir”。
单击保存
在下一个提示中,当被问及“您想扫描您的项目以查找对旧应用程序名称的引用吗?”时,单击否
要预览应用程序的进度,请单击“预览应用程序”按钮 ,该按钮位于保存按钮的右侧,然后单击预览按钮。您的默认浏览器将打开一个选项卡,其中显示应用程序的进度(我们拖到设备画布上的标签页面板)。
步骤 3:将标签页面板更新为仅包含 2 个标签页
在本节中,您将修改标签页面板的默认视图,使其仅包含最终应用程序所需的组件。
从“项目检查器”窗格中选择 MyTabPanel
工具箱窗格的右下侧是配置窗格,用于修改应用程序中视图和其他类的配置。在配置窗格的过滤器配置…字段中搜索“name”。
将 userClassName 配置的值从“MyTabPanel”更改为“Main”
接下来,删除 Tab 3
在工具箱窗格中搜索“grid”
将“表格 (Grid)”组件的实例拖到“项目检查器”窗格中的 Tab 1 上方,以将表格添加到标签页面板作为第一个标签页
选择 Tab 1,并在配置窗格中搜索“title”。将标题更新为“Employee Directory”
对于“Employee Directory”标签页,在配置窗格中搜索输入“iconCls”,然后单击过滤器字段右侧的添加以将“iconCls”添加为自定义配置。将“iconCls”的值设置为“x-fa fa-users”。这将使用 Ext JS 主题的图标集向标签页添加图标。
在“项目检查器”窗格中选择 Tab 2。将标题更新为“About Sencha”
对于“About Sencha”标签页,添加自定义“iconCls”配置并将其值设置为“x-fa fa-info-circle”。
预览项目以在 Architect 外部查看您的更新。
步骤 4:在 Tab 2 中添加“About Sencha”面板
在这里,您将添加公司信息面板的内容和样式。
在“项目检查器”窗格中选择“About Sencha”标签页后,在配置面板中搜索“html”。将 html 更改为以下内容
<h1>关于 Sencha</h1><br/>超过 10,000 家客户和 60% 的财富 100 强企业依赖 Sencha 解决方案来交付驱动其业务的创新应用程序。Sencha 长期致力于 Web 技术,大大降低了跨多种设备类型开发和交付企业应用程序的成本和复杂性。<br/><br/><h2>使用 JavaScript 创建功能丰富的 HTML5 应用程序</h2><br/>Sencha Ext JS 是最全面的 MVC/MVVM JavaScript 框架,用于构建功能丰富的跨平台 Web 应用程序,目标是桌面、平板电脑和智能手机。Ext JS 利用现代浏览器上的 HTML5 功能,同时保持与旧版浏览器的兼容性和功能。<br/><br/>Ext JS 具有数百个高性能 UI 小部件,这些小部件经过精心设计,可满足最简单以及最复杂的 Web 应用程序的需求。无论设备和屏幕尺寸如何,Ext JS 模板和布局管理器都让您完全控制显示。高级图表包允许您可视化大量数据。该框架包括一个强大的数据包,可以从任何后端数据源使用数据。Ext JS 还提供多个开箱即用的主题,以及完整的主题支持,让您构建反映您品牌形象的应用程序。它还包括一个辅助功能包 (ARIA),以帮助符合 Section 508 标准。
通过搜索“padding”并将“padding”配置值设置为 10,为我们的“About Sencha”标签页添加内边距
单击保存
预览应用程序
步骤 5:添加模型
在为员工目录存根数据之前,您首先需要创建一个数据模型,其中包含描述要由表格/目录使用的数据集的字段。
在“项目检查器”窗格中,单击“+”按钮,然后从下拉菜单中选择 模型 (Model)
在配置面板中搜索“name”,并将 “userClassName” 配置从“MyModel”更改为“Employee”
从配置面板中,搜索“fields”。
单击字段配置右侧的“+”按钮。
输入“firstName, lastName, officeLocation, phoneNumber”,然后单击完成
单击保存
步骤 6:添加数据存储 (Store)
接下来,您将向您的项目添加一个数据存储,该数据存储将为员工目录视图提供数据。Architect 将生成模拟数据,让您可以进一步可视化应用程序在填充员工数据后将如何工作。
从“项目检查器”窗格中,单击“+”按钮,然后从下拉菜单中选择 数据存储 (Store) > Json 数据存储 (Json Store)
在配置面板中搜索“name”,并将 “userClassName” 从“MyJsonStore”更改为“Employees”
右键单击“项目检查器”窗格中的 Employees 数据存储项,然后选择 生成模拟数据 (Generate Mock Data)
在 生成模拟数据 (Generate Mock Data) 对话框窗口中,为 选择模型 (Select Model) 字段选择“Employee”,然后单击 生成 (Generate) 按钮
单击保存
步骤 7:设置员工目录表格
员工目录表格已添加为标签页,但尚未配置为显示来自 Employees 数据存储的员工数据。在以下步骤中,您将配置员工表格的呈现方式,并将每列与其在数据存储中的相应字段关联起来。
选择“项目检查器”窗格中找到的“员工目录 (Employee Directory)”表格项,位置为“应用程序 (Application) > 视图 (Views) > Main > 员工目录 (Employee Directory)”
在配置面板中搜索“columns”,然后单击每个条目旁边的“X”图标删除“列 (Columns)”配置上的所有条目,但 String 除外
在“列 (Columns)”配置上,通过单击“列 (Columns)”配置行上的“+”按钮并从下拉菜单中选择“列 (Column)”来添加两列
在配置窗格中搜索“store”,然后从数据存储配置的下拉选项中选择“Employees”
从“项目检查器”窗格中的“员工目录 (Employee Directory)”表格项下选择“String”列
在配置窗格中搜索“text”,并将值从“String”更改为“First Name”
搜索“dataIndex”配置,然后从 dataIndex 配置的下拉选项中选择“firstName”
从“项目检查器”窗格中选择“MyColumn1”
在配置面板中搜索“text”,并将值从“MyColumn1”更改为“Last Name”
搜索“dataIndex”配置,然后为 dataIndex 配置选择“lastName”
从“项目检查器”窗格中选择“MyColumn2”
在配置面板中搜索“text”,并将值从“MyColumn2”更改为“Phone Number”
搜索“dataIndex”配置,然后为 dataIndex 配置选择“phoneNumber”
对于每列,搜索“width”配置,并将值设置为 120
预览应用程序
步骤 8:添加表单面板
员工表格完成后,我们现在将创建一个表单,用于查看和修改员工记录的详细信息。
在工具箱窗格中搜索“form”,并将“表单面板 (Form Panel)”实例拖到“项目检查器”窗格中的“视图 (Views)”节点上
在配置面板中搜索“name”,并将 “userClassName” 从“MyFormPanel”更改为“UpdateRecordForm”
搜索“title”,并将其从“My Form”更改为“Update Record”
搜索“modal”,然后选择(选中)它
搜索“centered”,然后选择它
在工具箱窗格中搜索“text field”
将“文本字段 (Text Field)”组件拖到设备画布上,然后将其放在“更新记录 (Update Record)”表单面板上。再执行三次此操作,使“更新记录 (Update Record)”上共有四个文本字段。
选择第一个文本字段(从设计视图或“项目检查器”窗格中),然后搜索“label”配置。将标签从“Field”更改为“First Name”。对每个文本字段执行相同的操作,使用标签:First Name、Last Name、Office Location 和 Phone Number。
在工具箱窗格中搜索“toolbar”,并将工具栏拖到表单面板上
在选择工具栏的情况下,搜索“docked”配置,然后使用下拉列表将其值设置为“bottom”
单击保存
步骤 9:向表单面板添加按钮
接下来,您将向“更新记录 (Update Record)”表单添加按钮,这些按钮将保存对员工记录的编辑,或取消编辑并关闭表单(我们将把记录绑定到表单本身,留到稍后的步骤)。
在工具箱窗格中搜索“button”。拖动“按钮 (Button)”实例并将其放在设备画布中的工具栏顶部。
搜索“text”配置,并将值从“MyButton”更改为“Submit”
搜索“iconCls”配置,然后输入值“x-fa fa-check”
在配置搜索输入“event”,然后单击 视图控制器事件绑定 (View Controller Event Bindings) 旁边的“+”。
输入“tap”,然后单击完成按钮。这将在 视图控制器事件绑定 (View Controller Event Bindings) 下添加一个“onButtonTap tap”项,其中“onButtonTap”是点击按钮时要执行的方法的名称。
单击“onButtonTap”项上的“->”按钮。将“fn”值从“onButtonTap”更改为“submitUpdate”。这会将“submitUpdate”方法添加到“更新表单 (Update Form)”的视图控制器。
在“项目检查器”窗格中,双击 UpdateRecordFormViewController 节点下的 submitUpdate 项。这将打开 submitUpdate 方法的代码视图(请注意,主窗格中的 设计 (Design) 视图现在已切换到 代码 (Code) 视图)。为 submitUpdate 方法输入以下代码
var view = this.getView(),
record = view.getRecord();
view.destroy();
record.commit();
按代码编辑器右上角的“对勾”按钮以提交代码
使用中心窗格右上角的 设计 (Design) 切换按钮切换回设计视图
拖动另一个“按钮 (Button)”实例,并将其放在设备画布中的工具栏顶部
搜索“text”配置,并将值从“MyButton1”更改为“Cancel”
搜索“iconCls”配置,然后输入值“x-fa fa-close”
在配置搜索输入“event”,然后单击 视图控制器事件绑定 (View Controller Event Bindings) 旁边的“+”。
输入“tap”,然后单击完成按钮。
单击“onButtonTap”项上的“->”按钮。将“fn”值从“onButtonTap”更改为“cancelUpdate”。
在“项目检查器”窗格中,双击 UpdateRecordFormViewController 节点下的 cancelUpdate 项。这将打开 cancelUpdate 方法的代码视图。为 cancelUpdate 方法输入以下代码
var view = this.getView(),
record = view.getRecord();
view.destroy();
record.reject();
单击代码编辑器右上角的“对勾”按钮以提交代码
单击保存
步骤 10:从员工表格显示表单面板
接下来,您将添加在单击/点击表格行时用于显示“更新记录 (Update Record)”表单的逻辑。
在“项目检查器”窗格中,选择 员工目录 (Employee Directory) 下的表格(位置为“应用程序 (Application) > 视图 (Views) > Main > 员工目录 (Employee Directory)”)。
在配置搜索输入“event”,然后单击 视图控制器事件绑定 (View Controller Event Bindings) 旁边的“+”。
输入“childtap”,然后单击完成按钮。
单击“onGridChildTap”项上的“->”按钮。将“fn”值从“onGridChildTap”更改为“onPopupForm”。
在“项目检查器”窗格中,双击 MyTabPanelViewController 节点下的 onPopupForm 项。这将打开 onPopupForm 方法的代码视图。为 cancelUpdate 方法输入以下代码
Ext.Viewport.add({
xtype: 'updaterecordform',
width: 400,
record: record,
viewModel : {
data: {
employee: record
}
}
});
单击代码编辑器右上角的“对勾”按钮以提交代码
预览应用程序。请注意,单击/点击表格的行将显示“更新记录 (Update Record)”表单面板。
步骤 11:将弹出表单中的数据绑定到表格
最后,让我们设置员工记录到用于编辑记录的表单字段的绑定。绑定使用上一节中 updaterecordform
的 viewModel
配置。记录与视图模型数据关联,键为“employee”。当将模型的字段值绑定到协调文本字段的值时,将在以下步骤中使用员工记录上的每个命名字段。
在“项目检查器”窗格中选择 First Name 文本字段,位置为“应用程序 (Application) > 视图 (Views) > UpdateRecordForm > MyTextField”。
搜索“bind”配置,然后单击编辑按钮
在代码视图中输入值:“{employee.firstName}”,然后单击代码编辑器右上角的“对勾”按钮以提交值
选择“Last Name”文本字段 (MyTextField1),搜索“bind”配置,并将值设置为:“{employee.lastName}”
选择“Employee Location”文本字段 (MyTextField2),搜索“bind”配置,并将值设置为:“{employee.officeLocation}”
选择“Phone Number”文本字段 (MyTextField3),搜索“bind”配置,并将值设置为:“{employee.phoneNumber}”
预览应用程序。当单击/点击表格行时,其记录将加载到弹出表单面板。现在可以对四个字段值进行编辑,单击“提交 (Submit)”按钮会将编辑提交到底层记录,单击“取消 (Cancel)”将放弃编辑。