在平台默认的实现中,rootRecord
代表的是根视图的数据。比如,在表格页面点击按钮打开了弹窗,弹窗里面包含一个表单视图,但是该视图获取 rootRecord
却是最外层的视图数据。
如果期望 rootRecord
数据是弹窗的视图数据,需要手动修改表单的 rootRecord
。下面的代码演示了如何重写 rootData
以确保其数据是弹窗的数据:
@SPI.ClassFactory(
BaseElementWidget.Token({
viewType: ViewType.Form,
widget: 'MyCustomFormWidgetFormWidget'
})
)
export class MyCustomFormWidgetFormWidget extends FormWidget {
@Widget.Reactive()
@Widget.Provide()
public get rootData(): any[] | undefined {
return this.activeRecords;
}
}
上述代码重写了 rootData
,这样就可以确保 rootData
的数据是弹窗的数据。
接下来就是注册:
registerLayout(
`
<view type="FORM">
<element widget="actionBar" slot="actionBar" slotSupport="action">
<xslot name="actions" slotSupport="action" />
</element>
<element widget="MyCustomFormWidgetFormWidget" slot="form">
<xslot name="fields" slotSupport="pack,field" />
</element>
</view>
`,
{
viewType: ViewType.Form,
model: '弹窗模型',
viewName: '弹窗视图名称'
}
)
Oinone社区 作者:汤乾华原创文章,如若转载,请注明出处:https://doc.oinone.top/frontend/4524.html
访问Oinone官网:https://www.oinone.top获取数式Oinone低代码应用平台体验