我正在创建一个新的angular + nativescript应用程序,该应用程序依赖于RadDataForm插件来创建表单。我创建了一个将初始化编辑器并且可以正常工作的源对象。在编辑器中,我有一个开关,当状态改变时,我想用它来执行编程操作。如何在代码中访问开关的状态?我正在使用json文件来自定义编辑器。
我尝试添加开关“ checkedChange”事件及其处理程序,如nativescript ui小部件中所述,但它不起作用。
这些是我的“问题”对象的编辑器
public isResolved?: boolean;
public reasonForNotResolving?: string;
这是我在RadDataForm中注册源对象的方式:
首先,我使用ngOnInit()方法初始化我的Object:
this.createIssue = new Issue(
false,
'Development Env Was Not Set',
);
然后使用“ createIssue”属性作为源对象,例如:
<RadDataForm
#issuesLogForm
tkExampleTitle
tkToggleNavButton
[source]="createIssue"
[metadata]="issueLogMeta"
>
</RadDataForm>
我的json文件提供的元数据如下:
{
"isReadOnly": false,
"commitMode": "Manual",
"validationMode": "Manual",
"propertyAnnotations":
[
{
"name": "isResolved",
"displayName": "issue is Resolved :",
"index": 5,
"editor": "Switch"
},
{
"name": "reasonForNotResolving",
"displayName": "Reason For Not Resolving :",
"index": 6,
"editor": "MultilineText"
},
]
}
我希望获得我的开关编辑器的状态,并在我的代码中以编程方式对其进行更改。这样,当选中“问题已解决”的开关编辑器时,应禁用“ reasonForNotResolving”的编辑器,反之亦然。
答案 0 :(得分:1)
使用propertyCommitted事件来监视数据表单上的任何更改。您可以通过比较事件对象中的propertyName
属性来过滤特定属性。
onPropertyCommitted(args) {
if (args.propertyName === "isResolved") {
// createIssue.isResolved should have the latest value here
}
}