我有一个依赖于frm.mybtn.$error.required
的按钮和ng样式:
ng-style="frm.mybtn.$error.required?{'border-color':'#a94442'}:''"
我从javascript中设置了按钮的值,
但有角度的并没有注意到所需的现在是假的
并且frm.mybtn.$error.required
仍设置为true
答案 0 :(得分:0)
您需要在范围摘要中运行javascript代码,如下所示
$scope.$apply(code to set value)
或者,如果您有当前的范围对象,那么
$scope.$digest(code to set value)
更多细节参考 How do I use $scope.$watch and $scope.$apply in AngularJS?
答案 1 :(得分:0)
你可以试试这个,它为我工作
ng-style="form_user.vEmail.$error.required == true ? {'border-bottom':'1px solid #FF2723'}:''"
答案 2 :(得分:0)
您还可以使用ng-class
指令,这对代码可重用性更好。因此,您最终会得到一个包含所需样式的类,您的HTML将如下所示:
<input type="text" ng-model="email" name="email" ng-required="true" ng-class="{ 'required': myForm.email.$error.required }"/>
此外,如果您只想在用户输入任何内容后应用样式,请检查$dirty
变量:
<input type="text" ng-model="email" name="email" ng-required="true" ng-class="{ 'required': myForm.email.$dirty && myForm.email.$error.required }"/>
请参阅此codepen。