我如何在RAD数据表单中为价值提供者实现属性转换器

时间:2019-06-27 15:28:30

标签: nativescript-angular

我的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类型时,我的控制台可以记录所选项目的完整对象。

0 个答案:

没有答案