Программное изменение состояния редактора RadDataForm Switch - PullRequest
0 голосов
/ 03 июня 2019

Я создаю новое приложение angular + nativescript, которое зависит от плагина RadDataForm для создания формы. Я создал исходный объект, который инициализирует редакторы и работает правильно. Среди редакторов у меня есть переключатель, который я хочу использовать для выполнения программных действий при изменении его состояния. Как мне получить доступ к состоянию коммутатора в моем коде? Я использую файл JSON для настройки редакторов.

Я попытался добавить событие переключателя «checkedChange» и его обработчик, как объяснено в виджетах UI nativescript, но это не работает.

Это редакторы из моего объекта "Issue"

  public isResolved?: boolean;
  public reasonForNotResolving?: string;

вот как я регистрирую мой исходный объект в RadDataForm:

сначала я инициализирую свой объект в методе ngOnInit (), например:

  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» должен быть отключен, и наоборот.

1 Ответ

1 голос
/ 04 июня 2019

Используйте событие propertyCommitted , чтобы отслеживать любые изменения в форме данных. Вы можете отфильтровать конкретное свойство, сравнив атрибут propertyName в объекте события.

onPropertyCommitted(args) {
    if (args.propertyName === "isResolved") {
        // createIssue.isResolved should have the latest value here
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...