如何从角度以外发起$ apply

时间:2016-03-17 19:06:25

标签: angularjs apply

我有一个增加计数器的按钮。计数从Angular世界中显示,而按钮在Angular世界之外。我可以通过使它成为全局(是的,丑陋的)来获得角度世界的价值,但是我如何获得一些Angular代码来使用$ apply来更新它的$ digest循环? (基于该点击事件)

BTW:我知道我可以使用ng-click将点击事件带入Angular,但出于好奇,我想知道如何在不这样做的情况下解决这个问题。

这里是plnk: https://plnkr.co/edit/UTElTmggj3ae2c19bsL1?p=preview

var gCounter = 0;

$(function() {

$('#btn').on('click', function() {
  console.log('click!')
  gCounter++;
})

});


(function() {

  var app = angular.module('app', []);
  var ctrl = app.controller('ctrl', Ctrl);


  function Ctrl($scope) {

    $scope.$watch(function() {
      return gCounter
    }, function(newVal, oldVal) {
      $scope.counter = newVal;
    });

  }

}

 }());

1 个答案:

答案 0 :(得分:0)

您可以获取与单击按钮关联的范围,然后使用

调用$apply()
$(this).scope().$apply();