如何应用angularjs(ng-show)的变化?

时间:2012-10-09 12:56:35

标签: angularjs

我有表格

<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。如何展示?

2 个答案:

答案 0 :(得分:9)

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

答案 1 :(得分:2)

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

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

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