单击按钮即可正式更新templateOptions

时间:2018-10-17 07:51:11

标签: angularjs angular-formly

我是正式的新手,我想根据值更改templateOptions属性, 所以下面是我的配置

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

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

我要在单击按钮时将遮罩更改为“ 999-999-9999”,

我尝试在按钮的onclick上执行此操作,但没有任何改变

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

;

1 个答案:

答案 0 :(得分:1)

我正在考虑您正在使用角形。在这里,我认为您不能随时更改配置选项。因此,要执行此操作,您必须从DOM中删除该字段,然后使用新的配置选项(例如mask)重新加载该字段。因此,您可以单击任意按钮来调用method,在其中可以重置一些布尔标志,然后更新配置选项,然后设置标志。

<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;
   });
}

这里的超时只是让它更新标志并运行摘要周期的一小段时间。

Example 进行引用。