首页 > 解决方案 > 单击按钮时正式更新模板选项

问题描述

我是正式的新手,我想根据值更改 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'
                      },
                    }                     
                  })

;

标签: angularjsangular-formly

解决方案


我正在考虑您正在使用角度形式。在这里,我认为您无法随时更改配置选项。因此,要做到这一点,您必须从 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 只是让它更新标志和运行摘要周期的一小段时间。

可以参考的例子。


推荐阅读