Обновите шаблон формы по нажатию кнопки - PullRequest
0 голосов
/ 17 октября 2018

Я новичок в форме, я хочу изменить свойство templateOptions на основе значения, поэтому ниже приведен мой конфиг

 formlyConfig.setType({
      name: 'phone',
      extends: 'maskedInput',
      defaultOptions: {

       templateOptions: {
          mask: '999-9999-9999'
        },

Я хочу изменить маску на маску: '999-999-9999'при нажатии кнопки

Я пытался сделать это по нажатию кнопки, но без изменений

                 formlyConfig.setType({
                    name: 'phone',
                    defaultOptions:{
                      templateOptions: {
                        mask: '999-999-9999'
                      },
                    }                     
                  })

;

1 Ответ

0 голосов
/ 17 октября 2018

Я полагаю, вы используете угловую форму.Здесь я не думаю, что вы можете изменить параметры конфигурации на ходу.Таким образом, для этого вы должны удалить поле из DOM, а затем перезагрузить его с новой опцией конфигурации (например, маска).Таким образом, вы можете вызывать метод нажатием любой кнопки, в котором вы можете сбросить некоторый логический флаг и затем обновить опцию конфигурации, а затем установить флаг.

<button class="btn" ng-click="vm.clickFn()">click</button>

Где clickFn может быть:

vm.clickFn = function() {
   vm.show = false;
   vm.fields[0].templateOptions.mask = "999-999-9999";
   $timeout(function() {
     vm.show = true;
   });
}

Здесь timemout - это всего лишь небольшое время, чтобы позволить ему обновить флаг и запустить цикл дайджеста.

Пример для ссылки.

...