2015-10-06 42 views
1

我有一个带有两个字段的表单:validFrom和validUntil。 ValidUntil有一个自定义验证器,如果该值在validFrom中的值之前,将使该字段无效。只要它是有效的直到我正在编辑,这工作正常。但是,当表单处于无效状态,并且我将validFrom值编辑为更早的内容时,我希望表单可以验证,但不会。我如何触发重新验证?角度形式:字段的触发重新验证

我试过vm.form.validUntil.$validate(),这似乎做一些事情,但只有第二次后,我更新validFrom值。

任何想法?

回答

1

添加一个$timeout诀窍。问题是,在验证,这是依赖于规模的变量,该变量的范围没有与刚输入的值还没有被更新。我不知道这是否是最好的解决办法,如果别人有更好的一个,我很乐意听到这种说法。

vm.promotion[key] = value; 

$timeout(function() { // this was added 
    if (key === 'validFrom') { 
     vm.form.validUntil.$validate(); 
    } 

    if (vm.form.$valid) { 
     PromotionManager.update(vm.promotion); 
    } 
});