Angularjs 当字段值更改时,设置其他字段的值
我使用的是Angular Schema表单,我想在字段值更改时将模型属性设置为null。我曾尝试在表单定义中使用Angularjs 当字段值更改时,设置其他字段的值,angularjs,angular-schema-form,Angularjs,Angular Schema Form,我使用的是Angular Schema表单,我想在字段值更改时将模型属性设置为null。我曾尝试在表单定义中使用onChange,如下所示 { key: '7_11', type: 'radios', titleMap: [{value: 'no', name: 'No'}, {value: 'yes', name: 'Yes'}], onChange: function(modelValue,form) { if (!modelValue) { // mo
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
侦听器的范围内
更新
第二个例子是。假设我们想清除2个复选框(通过从模型中删除相应的属性),无论何时在名称字段中输入一些文本,这是如何实现的
我还应该指出,出于我不想让您感到厌烦的原因,我不能使用条件和销毁策略来实现这一点。好吧,在同一个控制器的范围内设置模型和表单并不少见(因为这是很自然的)。
如果是这种情况,您可以通过$scope.model.X=modelValue
设置X
或者,您可能处于无法达到模型范围的位置,在这种情况下,模型更复杂。另一方面,我建议在同一个地方做这一切
(有时这是不可能的。例如,我的应用程序中有动态表单和模式,但在这些情况下,我使用通用功能,如或中的筛选功能,并避免使用onChange硬编码UI)
例如,如果在plunkr中更改了foo,则会设置foo2:
onChange: function(modelValue,form) {
if (modelValue) {
$scope.model.foo2 = ["Yes"];
}
},
我不太明白。如果您有时间,可以看一下Plunker演示,并解释如何解决我在更新中提到的特定问题吗?好的,我现在明白了,好的,onChange函数是表单中字段的一部分,而不是架构属性列表中的一部分。您是对的,我已将其移动到表单中,但是我仍然不知道如何从绑定到字段Y的onChange
侦听器设置字段X的值?