字段用于对模型中的数据进行分类。例如,Employee
模型可以包含 FirstName
字段,用于存储人名。
字段对应表格中的列,记录对应表格中的行。数据归入每条记录中的各个字段。例如,在第四条记录中,FirstName
字段可能包含 Bob
。
您可以使用服务器脚本、客户端脚本和绑定将数据归入各个字段中。
来自脚本的输入必须与字段的类型匹配。您可以确保脚本中包含正确的数据类型,也可以在绑定表达式中使用绑定转换器来将数据转换为正确类型。在可能的情况下,应用制作工具会自动将应用界面中的输入转换为适当类型。
创建字段
在创建字段时,您可以指定该字段的类型,以确定其所包含的数据类型。例如,字符串类型的字段用于存放字符串(如姓名或电子邮件地址),而数字类型的字段用于存放数字。
您可以创建以下字段:
简单字段 - 简单字段最多可以包含一个值。应用中的大多数字段可能都属于简单字段。每条记录中的各字段要么不包含任何内容 (
null
),要么包含单个值。例如,特定记录中的JobTitle
字段可能包含以下内容:Software Engineer
您可以按简单字段中的数据对记录进行排序。在“Table”微件中,用作列标题的标签预定义了
onClick
操作以用于对表格进行排序;例如:window._am.sortTableBy(widget.datasource, widget.datasource.model.fields.LastName, widget, window._am.TableState);
列表字段 - 列表字段可以包含多个值。应用制作工具会将列表字段中的值存储为数组。
每条记录中的各列表字段可以不包含任何值(即为空数组、
[]
或null
),也可以包含单个值或多个值。例如,特定记录中的Measurements
字段可能包含以下内容:[0.312,1.245,1.434,1.789, 42]
您无法按列表字段中的数据对记录进行排序。
适用于简单字段的数据类型
类型 | 说明 | 示例 |
---|---|---|
String | 由 Unicode 字符组成的字符串 | 字段:FirstName 内容: |
Number | 64 位浮点数 | 字段:EmployeeID 内容: |
Boolean | true 或 false |
字段:IsActive 内容: |
Date | 日期对象 | 字段:HireDate 内容: |
适用于列表字段的数据类型
类型 | 说明 | 示例 |
---|---|---|
List<String> | 字符串列表 | 字段:FoodAllergies 数组: |
List<Number> | 数字列表 | 字段:MRITesla 数组: |
List<Boolean> | 布尔值列表 | 字段:Answers 数组: |
List<Date> | 日期列表 | 字段:ReviewDate 数组: |
设置字段属性
您可以在每个模型的“Fields”标签页中设置字段属性。
名称 | 说明 |
---|---|
类型 | 字段存储的数据类型:对于简单字段,该属性可以是字符串、数字、布尔值或日期;对于列表字段,该属性可以是列表<字符串>、列表<数字>、列表<布尔值>或列表<日期>。字段类型不可修改。要更改字段类型,请删除字段并重新创建。 |
名称 | 用于访问该字段的专用标签。该属性只能包含字母数字字符和下划线,并且必须以字母开头。 |
SQL 类型 | (仅限 Google Cloud SQL)用于存储字段数据的基础 SQL 类型。 |
显示名 | 较为简明易懂的字段名称。该名称不必是唯一的,并且可以包含空格和特殊字符。 |
说明 | 对于该字段的描述;仅供参考之用。 |
使用默认值 | 如果选择此属性,您可以指定在应用创建记录时要使用的默认值。 |
使用默认值
对于除布尔值类型之外的其他所有简单字段,应用制作工具默认使用 null
作为其默认值(布尔值类型简单字段的默认值为 false
)。对于列表字段,应用制作工具使用空数组作为其默认值。
选择“使用默认值”属性后,您可以设置自己的默认值。设置默认值对于不接受 null
的必填字段以及任何具有自然默认状态的字段都很有用。例如,在 Employee
模型中,您可以将 Status
字段的默认值设为 Active
,因为每条新记录可能代表一位有效新员工。
对于以下记录,应用制作工具会使用默认值作为初始值:
- 数据源的草稿记录
- 在使用手动保存模式的数据源中创建的记录
- 使用
newRecord()
在服务器上创建的记录 - 从未指定相应字段值的 Google 电子表格或 CSV 文件中导入的记录
验证数据
对字段使用数据验证限制可以约束字段接受的数据。例如,您可以确保 ZipCode
字段的值为 5 位数,或者 Name
字段的值至少为两个字符长。可用的限制因字段类型而异。
对于列表字段,如果设置了任何验证条件,则列表中的所有项都必须满足这些验证条件。例如,2,3,5,3.235
将无法通过整数验证,因为 3.235
并非整数。
名称 | 类型 | 说明 |
---|---|---|
必需 | 全部 | 如果选择此项,则当字段为 null 或为包含 null 元素的数组(对于列表字段),或者字段未定义时,记录将不会得到保存。 |
最小长度和最大长度 | 字符串 | 字段的最小和最大字符长度。 |
允许的值 | 字符串、数字、日期 | 一个列表,用于确定字段接受哪些输入。 |
正则表达式 | 字符串 | 一组条件;字符串必须满足这些条件,具有此值的字段所属的记录才会得到保存。 详细了解正则表达式。 |
正则表达式错误消息 | 字符串 | 当输入与指定的正则表达式不匹配时应用显示的错误消息。 |
最小值和最大值 | 数字、日期 | 字段的最小值和最大值。 日期值始终根据世界协调时间 (UTC) 进行验证,即使微件已被配置为使用浏览器的时区也是如此。 |
整数 | 数字 | 如果选择此项,则当字段的数字值包含有效小数位时,记录将不会得到保存。您可能会认为,数字 4. 、4.0 、0. 、.0 和 0.0 均属于整数,而数字 1.0000000000000001 不属于整数,但应用制作工具会将后者视为整数,因为小数点后的数字小到可以忽略不计。 |
SQL 类型 | 日期 | (仅限 Cloud SQL 模型)用于控制应用制作工具处理时区的方式:
|
创建包含必填字段的记录
当您尝试创建包含 null
或未定义的必填字段或列表字段为 null 元素的数组的记录时,应用制作工具会抛出一个错误。您可以采取以下措施来避免这些错误:
- 分配默认值 - 这是最简单的解决方案;分配默认值后,您可以保证字段在创建时存在值,从而避免任何验证错误。
- (服务器端)使用草稿记录 - 您可以使用
newRecord()
方法在将记录保存到模型之前设置必填字段。 - (客户端)使用草稿记录 - 采用自动保存模式的数据源包含一条
draft
记录,脚本和数据绑定可以在创建记录之前将值输入该记录中。 - (客户端)使用采用手动保存模式的数据源 - 在手动保存模式下,用户或脚本可以在保存记录之前填充必填字段,从而避免验证错误。
将数据导入和导出列表字段
您可以通过以下方式将数据导入和导出列表字段:
- 使用服务器脚本或客户端脚本 - 脚本可以读取和写入列表字段数组中的项。
- 使用微件 - 您可以在列表字段中使用特定微件和绑定表达式。
- 使用导入和导出功能 - 应用制作工具可以导入和导出包含列表字段的记录。
英文逗号和引号语法
在应用的界面和(用于导入操作或由导出操作生成的)Google 电子表格中,列表字段的内容表示为以英文逗号分隔的列表;例如:
capable truck,magnificent truck,best truck
字符串类型列表字段中的项可以包含英文逗号。为了区分内容自带的英文逗号和充当分隔符的英文逗号,建议在界面以及导入和导出操作中分别使用不同的特殊语法。对于导入和导出操作,也可以使用特殊语法来表示双引号。
方面 | 界面语法 | 导入和导出操作语法 |
---|---|---|
内容自带的英文逗号 | 使用 \, (反斜杠加英文逗号) |
使用英文双引号括起列表项 |
内容自带的英文双引号 | 无特殊语法 | 使用英文双引号括起列表项,并将内容自带的引号加倍(即将 " 变为 "")。 |
英文单引号不需要使用特殊语法。如果某项同时包含英文逗号和一个或多个英文双引号,请仅使用一组英文双引号括起该项。
项中所含的前导和尾随空格会在保存数据时被删除。
示例
界面语法 | 导入和导出操作语法 |
---|---|
horse,dog,cat | horse,dog,cat |
horse,dog\,cat | horse,"dog,cat" |
horse,a "beautiful" dog,cat | horse,"a ""beautiful"" dog",cat |
horse,a "beautiful\, strange\," exotic dog, cat | horse,"a ""beautiful, strange,"" exotic dog",cat |