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

我设法使用一个正式表达式隐藏基于复选框的输入框。

expressionProperties: {
    hide: 'model.sameEmail'
}


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

Formly有可能吗?

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

最佳答案

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

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


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

看守人的信息:


http://docs.angular-formly.com/docs/formly-expressions#watcher
http://angular-formly.com/#/example/field-options/watchers

关于javascript - 基于expressionProperty更改Angular Form上的模型绑定(bind),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34282192/

10-11 05:38