2014-11-21 60 views
0

我有一个指令,检查指令的模板中的3个输入字段的条件,并使用$ setValidity来禁用保存按钮,AND给出一个字段的颜色; 在角1.2这个作品:

template: '<input type="text" size="8" ng-model="date.date" ng-change="checkDateInput();" ng-class="{\'ng-invalid\': $invalid}" ui-mask="9999-99-99" placeholder="yyyy-mm-dd">' 

我们现在切换到角1.3,而不是用$ setValidity直接操纵我(在1.3新)由$验证。

更干净,但现在增加了课间休息;当我在指令模板中打印$ error或$ invalid时,它不存在,而当我在指令外使用它们时,它们会提供正确的布尔值。

任何人都知道如何在1.3中的指令模板中访问ngModel属性?

回答

1

你被错误添加类:

ng-class="{\'ng-invalid\': $invalid}" ui-mask="9999-99-99" placeholder="yyyy-mm-dd">' 

应该

ng-class="{'ng-invalid': $invalid}" ui-mask="9999-99-99" placeholder="yyyy-mm-dd">' 

也可以尝试$无效之前把表格的名称,如

myFormName.$invalid 
+0

因为这是一个指令模板的一部分,整个事情是在引号之间,这就是为什么他们需要逃脱...你的版本崩溃创建直接我有。 – 2014-11-21 15:31:54

+0

好的,但是这个在评估ng-class的时候会崩溃,如果没有自己的引号,你不能用短划线传递类 – 2014-11-21 15:40:10

+0

问题是我根本不能在指令的模板属性中访问$ invalid;如果我在模板属性的末尾键入{{$ invalid}},它将保持为空。 – 2014-11-21 15:53:49