从模型中删除动态禁用(通过 `expressionProperties`)字段的值?
Remove value from the model for dynamically disabled (via `expressionProperties`) field?
当 angular-formly
(我正在使用 v6.4.x w/ AngularJS 1.2.x)字段的表达式 属性 导致字段动态在启用和禁用之间切换,切换到禁用不会从模型中删除该字段之前输入的任何值。例如:
- 使用 advanced layout example from Formly
- 输入名字,以便启用姓氏
- 输入姓氏
的值
- 删除 名字 值,这样 姓氏 再次被禁用
- 请注意,模型仍然包含为 姓氏 输入的数据,即使它已被禁用
鉴于 disabled
如何用于标准 HTML 表单提交,我希望模型不再包含该字段的值。
我需要避免为已禁用的字段提交数据,因此如果这是预期的行为(而且我不知道它是...),每当 expressionProperties
导致字段被禁用时,有人可以提供有关如何完成值删除的想法吗?
kentcdodds 的评论让我朝着正确的方向前进,并且能够在文档中找到足够的部分来完成一些工作。在我最紧迫的任务中,我需要一个无线电选项以在禁用时从模型中删除,我最终也取消选中它。为此,我扩展了 radio
输入类型并添加了 link
函数以访问 scope
和 element
。下面是它看起来的样子:
app.config(['formlyConfigProvider', function (formlyConfigProvider) {
formlyConfigProvider.setType({
name: 'liveDisableRadio',
extends: 'radio',
link: function (scope, element) {
scope.$watch('to.disabled', function (is_disabled) {
if (is_disabled) {
delete scope.model[scope.options.key];
element.find(':radio:checked').prop('checked', false).trigger('change');
}
});
}
});
}])
当 angular-formly
(我正在使用 v6.4.x w/ AngularJS 1.2.x)字段的表达式 属性 导致字段动态在启用和禁用之间切换,切换到禁用不会从模型中删除该字段之前输入的任何值。例如:
- 使用 advanced layout example from Formly
- 输入名字,以便启用姓氏
- 输入姓氏 的值
- 删除 名字 值,这样 姓氏 再次被禁用
- 请注意,模型仍然包含为 姓氏 输入的数据,即使它已被禁用
鉴于 disabled
如何用于标准 HTML 表单提交,我希望模型不再包含该字段的值。
我需要避免为已禁用的字段提交数据,因此如果这是预期的行为(而且我不知道它是...),每当 expressionProperties
导致字段被禁用时,有人可以提供有关如何完成值删除的想法吗?
kentcdodds 的评论让我朝着正确的方向前进,并且能够在文档中找到足够的部分来完成一些工作。在我最紧迫的任务中,我需要一个无线电选项以在禁用时从模型中删除,我最终也取消选中它。为此,我扩展了 radio
输入类型并添加了 link
函数以访问 scope
和 element
。下面是它看起来的样子:
app.config(['formlyConfigProvider', function (formlyConfigProvider) {
formlyConfigProvider.setType({
name: 'liveDisableRadio',
extends: 'radio',
link: function (scope, element) {
scope.$watch('to.disabled', function (is_disabled) {
if (is_disabled) {
delete scope.model[scope.options.key];
element.find(':radio:checked').prop('checked', false).trigger('change');
}
});
}
});
}])