我的nativescript-angular应用程序中有一个RAD数据表单。该表格有两个字段,分别是ID类型和ID号。 ID类型字段是一个选择器,用于显示来自后端服务的数据。我的源对象看起来像:
this.mySourceObj = new User("Passport Id", "A2653JHSJ12");
我希望我的源对象将ID类型的值存储为字符串。 因此,我使用HTML标记更改了编辑器,例如:
<TKEntityProperty
tkDataFormProperty
name="idType"
displayName="Id Type"
index="1"
[valuesProvider]="idTypesProvider"
>
<TKPropertyEditor
tkEntityPropertyEditor
type="Picker"
></TKPropertyEditor>
</TKEntityProperty>
在我的ts文件中,我注册了我的值提供者,例如:
this.idTypesProvider = {
key: "id",
label: "name",
items: [...idTypesArr]
};
通过此设置,选择器编辑器将填充数据,但是当我选择一项时,它不会反映在我的代码中,因此在提交表单时,该字段为空。
我想将所选项目的值作为一个完整的对象,即(ID,名称,...)。
我尝试使用属性commited事件获取承诺值,但它记录了该项目的索引值。
if (args.propertyName === "idType") {
const selectedIdType = this.mySourceObj.idType;
console.log(`the committed id type is :`, selectedIdType);
} else {
console.log("No property selected");
}
我也遇到过像dom这样的属性转换:
<TKEntityProperty
tkDataFormProperty
name="idType"
displayName="Id Type"
index="1"
[converter]="valsConverter"
[valuesProvider]="idTypesProvider"
>
<TKPropertyEditor
tkEntityPropertyEditor
type="Picker"
></TKPropertyEditor>
</TKEntityProperty>
但是我不知道如何实现“转换器”。我们非常感谢您的帮助。
我想要一种情况,当用户选择一个ID类型时,我的控制台可以记录所选项目的完整对象。