基于expressionProperty更改Angular Formly上的模型绑定

时间:2015-12-15 06:08:01

标签: javascript angularjs forms angular-formly

我正在使用Angular Formly来构建表单。我需要用户输入两个电子邮件地址(工作和家庭)。但是,如果他们在工作和家庭中使用相同的地址,他们只需单击禁用工作电子邮件的复选框即可。

我设法使用Formly Expression隐藏了基于复选框的输入框。

expressionProperties: {
    hide: 'model.sameEmail'   
}

我想要做的是将隐藏的电子邮件字段的模型设置为显示的模型(它应该保持更新)。

Formly可以实现吗?

示例plnkr显示在此处:http://plnkr.co/edit/edlJaVIdo9z2j6Noyzqy?p=preview

1 个答案:

答案 0 :(得分:1)

您可以使用复选框中的观察器来更新模型:

watcher: {
  listener: function(field, newValue, oldValue, scope, stopWatching) {
    if (newValue) {
      scope.model.workEmail = scope.model.email;
    }
  }
}

示例:http://plnkr.co/edit/TgCUfNCB4HhdUP7z93l1?p=preview

关于观察者的Mor信息: