$colacola.AbstractButtoncola.AbstractCheckboxcola.AbstractContainercola.AbstractDropdowncola.AbstractEditorcola.AbstractInputcola.AbstractItemGroupcola.AbstractListcola.AbstractMenuItemcola.AbstractSlotListcola.AjaxValidatorcola.AsyncValidatorcola.Avatarcola.Breadcrumbcola.Buttoncola.ButtonGroupcola.Calendarcola.CardBookcola.Carouselcola.CascadeBindcola.Checkboxcola.ControlMenuItemcola.Cornercola.CustomDropdowncola.CustomValidatorcola.DataTypecola.DatePickercola.DateTimePickercola.Dialogcola.Dividercola.Dropdowncola.DropdownMenuItemcola.Elementcola.EmailValidatorcola.Entitycola.EntityDataTypecola.EntityListcola.FieldSetcola.GroupBoxcola.HeaderMenuItemcola.IFramecola.Imagecola.Inputcola.ItemsViewcola.Labelcola.Layercola.LengthValidatorcola.Linkcola.ListViewcola.Menucola.MenuButtoncola.MenuItemcola.Modelcola.MultiSlotPickercola.NestedListcola.NestedListBindcola.NestedListNodecola.Nodecola.NumberValidatorcola.Panelcola.PointingLabelcola.Progresscola.Propertycola.Providercola.RadioButtoncola.RadioGroupcola.RangeSlotListcola.Ratingcola.RegExpValidatorcola.RenderableElementcola.RequiredValidatorcola.Revealcola.Ribboncola.Segmentcola.Selectcola.Sidebarcola.Slidercola.SlotListcola.SplitPanecola.Stackcola.Stepscola.Tabcola.TabButtoncola.Tablecola.TableColumncola.TableContentColumncola.TableDataColumncola.TableGroupColumncola.TableSelectColumncola.Tagcola.TimeLinecola.TitleBarcola.Togglecola.Treecola.TreeNodecola.TreeNodeBindcola.UrlValidatorcola.Validatorcola.Widgetcola.breadcrumb.Sectioncola.buttonGroup.Separatorcola.steps.Stepcola.tab.AbstractTabButtoncola.utilcola.util.KeyedArray

cola.Property

属性描述

用于描述一个Entity属性的数据类型、校验规则等的对象。

property
string
cola.Property
属性名
owner
cola.EntityDataType
cola.Property
该属性描述所属的EntityDataType
caption
string
cola.Property
属性的标题,即用于显示的名称
defaultValue
any
cola.Property
属性的默认值
required
boolean
cola.Property
属性的是否必须有值
dataType
string || json || cola.DataType
cola.Property
属性的数据类型
此Attribute在get和set时可以使用不同的类型的参数。

get时此Attribute总是返回DataType的实例。

set时可以下列的两种取值:
  • 使用string,该string将被认作是DataType的name属性,此时Cola会在当前Model中查找同名的DataType并将其作为此属性的DataType。
  • 使用JSON配置对象,表示直接利用此JSON配置对象创建一个新的DataType并勇气作为属性的DataType。
aggregated
boolean
cola.Property
是否集合类型
通常,假设当我们设置一个person属性的类型为Person,无论我们向Entity的person属性中设置一个Entity还是一个EntityList都是可被接受的。
但是在某些情况下Cola可能无法自行判断应该按照哪种方式来处理,或者其采取的处理方式可能与我们的预期并不一致。

例如,假设Entity的person属性目前为空,当我们调用Entity.createChild("person", {...})向person属性中添加一个对象时,
Cola无法判断应该向其中直接添加一个Person,还是首先创建一个EntityList并将新的Entity添加到该EntityList中。
为了区分这种情况,我们需要用到aggregated。

此Attribute的值为undefined/true/false时会得到三种不同的处理结果。
  • 默认情况,当值为undefined时Cola会尝试进行自动判断。
  • 当值为true,表示该属性只接收集合类型,即该属性的内容是EntityList。
  • 当值为false,表示该属性只接收单一的Entity。
provider
string || json || cola.Provider
cola.Property
属性的数据提供者
利用此Attribute可以定义具有懒装载特性的属性,此Attribute在get和set时可以使用不同的类型的参数。

get时此Attribute总是返回Provider对象的实例。

set时可以下列的两种取值:
  • 使用string,该string将被认作是Provider的url属性,此时Cola会直接创建一个新的Provider,其url属性的值为该stirng。
  • 使用JSON配置对象,表示直接利用此JSON配置对象创建一个新的Provider。
validators
string || function || json || [json] || [cola.Validator]
cola.Property
属性的数据校验器
此Attribute在get和set时可以使用不同的类型的参数。

get时此Attribute总是返回数据校验器的数组。

set时可以下列的几种取值:
  • 使用string,此时该string会被认为是数据校验器的$type。Cola会直接根据此$type创建一个新的校验器。
  • 使用funciton,Cola会认为您将要定义一个cola.CustomValidator, 并将此function作为CustomValidator的func。
  • 使用json或[json],Cola会根据这些JSON配置对象创建一个或多个数据校验器。
rejectInvalidValue
boolean
cola.Property
是否拒绝未通过校验的数据进入Entity
默认情况下Cola并不会阻止未通过校验的数据设置进Entity,而是会将整个Entity标记为未通过校验的状态。
用户可以在界面上看到那些数据未通过校验并尝试修正他们,我们认为这样的方式有助于改善界面的操作体验。
但在部分情况下,您可能希望直接拒绝这些不正确的数据设置进Entity,此时可以将rejectInvalidValue设置为true。