当字段值改变时设置不同字段的值
Set the value of a different field when a field value changes
我正在使用 Angular 架构表单,我想在字段值更改时将模型 属性 设置为 null。我试过在表单定义中使用 onChange
{
key: '7_11',
type: 'radios',
titleMap: [{value: 'no', name: 'No'}, {value: 'yes', name: 'Yes'}],
onChange: function(modelValue,form) {
if (!modelValue) {
// model['8_1'] = null
}
}
}
请注意,我尝试设置的模型 属性 绑定到与已更改的字段不同的字段
我无法按照评论中指出的方式进行操作,因为 model
不在 onChange
侦听器的范围内。
更新
第二个例子是this Plunker demo。假设我们想在名称字段中输入一些文本时清除 2 个复选框(通过从模型中删除相应的属性),如何实现?
我还应该指出,出于不想让您厌烦的原因,我无法使用条件和 destroyStrategy
.
来实现它
嗯,在同一个控制器的范围内设置模型和表单并不少见(因为这很自然)。
如果是这样,您可以通过 $scope.model.X = modelValue
.
设置 X
或者你处在无法到达模型范围的位置,那样的话就比较复杂了。另一方面,我建议在同一个地方做这一切。
(有时这是不可能的。例如,我的应用程序中有动态表单和模式,但在这些情况下,我使用通用功能,如 ASFDS or ASF conditions 中的过滤器功能,并避免使用 hard-coding UI 使用 onChange) .
例如,如果在 plunkr 中更改了 foo,这将设置 foo2:
onChange: function(modelValue,form) {
if (modelValue) {
$scope.model.foo2 = ["Yes"];
}
},
我正在使用 Angular 架构表单,我想在字段值更改时将模型 属性 设置为 null。我试过在表单定义中使用 onChange
{
key: '7_11',
type: 'radios',
titleMap: [{value: 'no', name: 'No'}, {value: 'yes', name: 'Yes'}],
onChange: function(modelValue,form) {
if (!modelValue) {
// model['8_1'] = null
}
}
}
请注意,我尝试设置的模型 属性 绑定到与已更改的字段不同的字段
我无法按照评论中指出的方式进行操作,因为 model
不在 onChange
侦听器的范围内。
更新
第二个例子是this Plunker demo。假设我们想在名称字段中输入一些文本时清除 2 个复选框(通过从模型中删除相应的属性),如何实现?
我还应该指出,出于不想让您厌烦的原因,我无法使用条件和 destroyStrategy
.
嗯,在同一个控制器的范围内设置模型和表单并不少见(因为这很自然)。
如果是这样,您可以通过 $scope.model.X = modelValue
.
或者你处在无法到达模型范围的位置,那样的话就比较复杂了。另一方面,我建议在同一个地方做这一切。
(有时这是不可能的。例如,我的应用程序中有动态表单和模式,但在这些情况下,我使用通用功能,如 ASFDS or ASF conditions 中的过滤器功能,并避免使用 hard-coding UI 使用 onChange) .
例如,如果在 plunkr 中更改了 foo,这将设置 foo2:
onChange: function(modelValue,form) {
if (modelValue) {
$scope.model.foo2 = ["Yes"];
}
},