设置值从js到元素,其中ng不需要设置为frm。$ error.required为false

时间:2017-03-22 07:12:05

标签: javascript angularjs

我有一个依赖于frm.mybtn.$error.required的按钮和ng样式:

ng-style="frm.mybtn.$error.required?{'border-color':'#a94442'}:''"  

我从javascript中设置了按钮的值,
但有角度的并没有注意到所需的现在是假的 并且frm.mybtn.$error.required仍设置为true

3 个答案:

答案 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