【问题标题】:AngularJS Update DOMAngularJS 更新 DOM
【发布时间】:2019-02-15 15:00:46
【问题描述】:

有人可以向我解释如何让 DOM “刷新”它在 AngularJS 中的值吗?这是我想要实现的一个示例。

按钮一开始是禁用的,3 秒后我希望它启用。我的代码确实正确启用了变量,但是 ng-disabled 没有刷新。我该如何解决这个问题?

我已经阅读了有关 $apply 的信息,但很多人说它很难理解并且使用起来很危险。我自己不能$apply to work(我不会真正理解)

欢迎您向我提出其他问题,因为我确信这个问题并不新鲜。

  <button ng-disabled="!Check1 || !Check2">Disabled</button>
  ...
  $scope.Check1 = false;
  $scope.Check2 = true;
  setTimeout(() => {
    $scope.Check1 = true;
    alert('Check1 now true');
  }, 3000);

http://plnkr.co/edit/O7j89xoS8rHCTz1Fn2pG?p=preview

*注意:不要向我介绍 $timeout。这里的超时只是延迟响应的一个例子,可以是任何东西。

【问题讨论】:

    标签: angularjs


    【解决方案1】:

    我现在看到这很容易。只需将值更改包装在$scope.$apply 中,如下所示:

      <button ng-disabled="!Check1 || !Check2">Disabled</button>
      ...
      $scope.Check1 = false;
      $scope.Check2 = true;
      setTimeout(() => {
        $scope.$apply(function () {
          $scope.Check1 = true;
          alert('Check1 now true');
        });
      }, 3000);
    

    这篇文章对解决这个问题很有帮助:http://jimhoskins.com/2012/12/17/angularjs-and-apply.html

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    • 1970-01-01
    • 2014-08-15
    • 2019-01-10
    • 1970-01-01
    • 2017-05-28
    相关资源
    最近更新 更多