6

我有表格

<form ng-controller="SessionController" name="login_form">
  <div class="hide" ng-show='invalid_credentials'>Invalid email/pass</div>
  <input type="submit" value="Login" ng-click='login()'>
</form>

控制器:

utApp.controller('SessionController', ($scope, $cookieStore, ClientService) ->
  $scope.login = ->
    ...
    if something
      $scope.invalid_credentials = true
      return

在某些情况下$scope.invalid_credentials设置为 true,但未显示带有错误消息的 div。如何展示它?

4

2 回答 2

9

Angular 不会重新检查invalid_credentials变量的值。使用函数作为ng-show参数应该可以。

于 2012-10-09T13:08:16.443 回答
2

接受的答案将起作用......但是,您真正需要做的是使用 $scope.$apply

utApp.controller "SessionController", ($scope, $cookieStore, ClientService) ->
  $scope.login = ->
    if something
      $scope.$apply (s) ->
        s.invalid_credentials = true

通常,当您更新范围时,它不会更新 UI ......这是因为您需要使用$apply

于 2012-10-11T15:21:08.187 回答