Members
descriptionNodeElement
描述信息节点,允许用户手工输入的组件才有此节点,只读情况下无此节点.
Type
-
Element
Inherited From
Source
nodeElement
组件的节点,mootools封装过的Dom对象,可以直接使用原生的js和moootools方法访问和操作该对象。
Type
-
Element
Inherited From
See
Example
//可以在脚本中获取该组件
var field = this.form.get("fieldId"); //获取组件对象
field.node.setStyle("font-size","12px"); //给节点设置样式
Source
jsonJsonObject
组件的配置信息,比如id,类型,是否只读等等。可以在组件的queryLoad事件里修改该配置来对组件做一些改变。
Type
-
JsonObject
Inherited From
Example
//可以在脚本中获取该组件
var json = this.form.get("fieldId").json; //获取组件对象
var id = json.id; //获取组件的id
var type = json.type; //获取组件的类型,如Textfield 为文本输入组件,Select为下拉组件
//在组件queryLoad事件里设置组件只读。
//当前组件的queryLoad事件运行时还没有在form里注册,通过this.form.get("fieldId")不能获取到当前组件,需要用this.target获取。
var json = this.target.json;
json.isReadonly = true; //设置组件为只读。
Source
formMWF.xApplication.process.Xform.Form
组件的所在表单对象.
Type
Inherited From
Example
var form = this.form.get("fieldId").form; //获取组件所在表单对象
var container = form.container; //获取表单容器
Source
parentLineMWF.xApplication.process.Xform.Datatemplate.Line|MWF.xApplication.process.Xform.DatatablePC.Line|MWF.xApplication.process.Xform.DatatableMobile.Line
当前组件在数据表格或者数据模板中时,可以通过此属性获取所在行(条目)对象.
Type
-
MWF.xApplication.process.Xform.Datatemplate.Line
|MWF.xApplication.process.Xform.DatatablePC.Line
|MWF.xApplication.process.Xform.DatatableMobile.Line
Inherited From
Example
//获取当前组件所在数据模板/数据表格的行(条目)对象
var line = this.target.parentLine;
//获取当前字段所在行下标
var index = line.getIndex();
//获取当前字段所在条目的subject字段的值
var data = line.getModule("subject").getData();
//设置当前字段所在条目的subject字段的值
line.getModule("subject").setData("test1");
Source
Methods
resetOption()
Summary
刷新选择项,如果选择项是脚本,重新计算。
Example
this.form.get('fieldId').resetOption();
Source
getOptions() → {Array|Promise}
Summary
获取选择项。
Returns
-
Array
Promise
返回选择项数组或Promise,如:
[ "女|female", "男|male" ]
Examples
this.form.get('fieldId').getOptions();
//异步
var opt = this.form.get('fieldId').getOptions();
Promise.resolve(opt).then(function(options){
//options为选择项数组
})
Source
getOptionsObj(refreshopt) → {Object}
Summary
获取整理后的选择项。
Parameters
-
refresh
Boolean
<optional>
是否忽略缓存重新计算可选项。
Returns
-
Object
返回整理后的选择项数组或Promise,如:
{"valueList": ["","female","male"], "textList": ["","女","男"]}
Examples
var optionData = this.form.get('fieldId').getOptionsObj();
//异步
var opt = this.form.get('fieldId').getOptionsObj(true);
Promise.resolve(opt).then(function(optionData){
//optionData为选择项
})
Source
getTextData() → {Object}
Summary
获取选中项的value和text。
Returns
-
Object
返回选中项的value和text,如:
{"value": ["male"], "text": ["男"]} {"value": [""], "text": [""]}
Example
var data = this.form.get('fieldId').getTextData();
var text = data.text[0] //获取选中项的文本
Source
reload()
Summary
重新加载组件。会执行postLoad事件。
Inherited From
Example
this.form.get("fieldId").reload(); //重新加载事件
Source
isReadonly() → {Boolean}
Summary
判断组件是否只读.
Inherited From
Returns
-
Boolean
是否只读.
Example
var readonly = this.form.get('subject').isReadonly();
Source
isEmpty() → {Boolean}
Summary
判断组件值是否为空.
Inherited From
Returns
-
Boolean
值是否为空.
Example
if( this.form.get('subject').isEmpty() ){
this.form.notice('标题不能为空', 'warn');
}
Source
getData()
Summary
获取组件值。
Description
在脚本中使用 this.data[fieldId] 也可以获取组件值。
区别如下:
1、当使用Promise的时候
使用异步函数生成器(Promise)为组件赋值的时候,用getData方法立即获取数据,可能返回修改前的值,当Promise执行完成以后,会返回修改后的值。
this.data[fieldId] 立即获取数据,可能获取到异步函数生成器,当Promise执行完成以后,会返回修改后的值。
具体差异请查看链接
2、当表单上没有对应组件的时候,可以使用this.data[fieldId]获取值,但是this.form.get('fieldId')无法获取到组件。
Inherited From
Returns
-
组件的数据.
Examples
var data = this.form.get('fieldId').getData(); //没有使用promise的情况、
//如果无法确定表单上是否有组件,需要判断
var data;
if( this.form.get('fieldId') ){ //判断表单是否有无对应组件
data = this.form.get('fieldId').getData();
}else{
data = this.data['fieldId']; //直接从数据中获取字段值
}
//使用Promise的情况
var field = this.form.get("fieldId");
var dict = new this.Dict("test"); //test为数据字典名称
var promise = dict.get("tools", true); //异步使用数据字典的get方法时返回Promise,参数true表示异步
promise.then( function(){
var data = field.getData(); //此时由于异步请求已经执行完毕,getData方法获取到了数据字典的值
})
field.setData( promise );
Source
setData(data, fireChange)
Summary
为组件赋值。
Description
当参数为Promise的时候,请参考文档: 使用Promise处理表单异步
当表单上没有对应组件的时候,可以使用this.data.add(fieldId, data, true) 赋值。
Parameters
-
data
String
|Promise
.
-
fireChange
boolean
可选,是否触发change事件,默认false.
Inherited From
Examples
this.form.get("fieldId").setData("test"); //赋文本值
//如果无法确定表单上是否有组件,需要判断
if( this.form.get('fieldId') ){ //判断表单是否有无对应组件
this.form.get('fieldId').setData( data );
}else{
this.data.add(fieldId, data, true);
}
//使用Promise
var field = this.form.get("fieldId");
var dict = new this.Dict("test"); //test为数据字典名称
var promise = dict.get("tools", true); //异步使用数据字典的get方法时返回Promise,参数true表示异步
field.setData( promise );
Source
validate(routeNameopt) → {Boolean}
Summary
根据组件的校验设置进行校验。
Parameters
-
routeName
String
<optional>
可选,路由名称.
Inherited From
Returns
-
Boolean
是否通过校验
Example
if( !this.form.get('fieldId').validate() ){
return false;
}
Source
getSource(typeopt) → {Source|SubSource|SubSourceItem}
当前组件在数据源组件中时,可以通过此方法获取所在的上级数据源/子数据源/子数项组件.
Parameters
-
type
String
<optional>
需要获取的类型,"source"为表示数据源,"subSource"表示子数据源,"subSourceItem"表示子数据项组件。 如果该参数省略,则获取离当前组件最近的上述组件。
Inherited From
Returns
-
Source
SubSource
SubSourceItem
。
Example
var source = this.target.getSource(); //获取当前组件的所在子上级数据源/子数据源/子数项组件.
var data = source.data; //获取数据
var source = this.form.get("fieldId").getSource("source"); //获取数据源组件
var data = source.data; //获取数据
Source
getParentModule(typeopt, validateFunctionopt) → {MWF.xApplication.process.Xform.$Module}
获取当前组件所在的祖先组件.
Parameters
-
type
String
<optional>
需要获取的组件类型。 如果该参数省略,则获取离当前组件最近的祖先组件。type有效值如下:
form- 表单common- 通用组件datatable- 数据表格datatableline- 数据表格行datatemplate- 数据模板datatemplateline- 数据模板行div- 容器组件elcommon- Element通用组件elcontainer- Element容器组件subform- 子表单source- 数据源组件subsource- 子数据源subsourceitem- 子数据项组件tab- 分页组件tabpage- 分页组件的某个分页table- 表格tabletd- 单元格widget- 部件 -
validateFunction
function
<optional>
进一步校验,参数为获取到匹配到类型的组件,返回false继续往上取对应类型的组件,返回true返回该组件。
Inherited From
Returns
Example
var module = this.target.getParentModule(); //获取最近的祖先。
var datatemplateLine = this.target.getParentModule("datatemplateline"); //获取当前组件所在的数据模板行.
var module = this.target.getParentModule(null, function(module){
return module.json.id === "div_1";
}); //获取当前组件id为div_1的父组件。
Source
hide()
Summary
隐藏组件.
Inherited From
Example
this.form.get("fieldId").hide(); //隐藏组件
Source
show()
Summary
显示组件.
Inherited From
Example
this.form.get("fieldId").show(); //显示组件
Source
Events
load
组件加载后触发。如果选项加载为异步,则异步处理完成后触发此事件
queryLoad
组件加载前触发。queryLoad执行的时候,当前组件没有在form里注册,通过this.form.get("fieldId")不能获取到当前组件,需要用this.target获取。
postLoad
组件加载后触发.