Angular $ watch不工作,除非我点击屏幕上的一些

时间:2015-04-18 18:19:17

标签: javascript angularjs

使用角度$ watch等。

基于触发器selectedIndex值的变化。

 $scope.selectedIndex = 1;
   Trigger.onReceivingTriger($scope,function(data){
         $scope.selectedIndex = 0;
    });


    $scope.$watch('selectedIndex', function(){
        console.log("am watching");
    });

我希望工作一次设置的触发值,手表应该正常工作。但问题是$ watch仅在我点击屏幕上的一些后才起作用。 我被卡住了...... 请帮助....

1 个答案:

答案 0 :(得分:2)

您应该运行摘要周期,因为您正在使用事件更新角度范围之外的范围。您需要通过执行$scope.$apply()

来消化周期

<强>代码

Trigger.onReceivingTriger($scope,function(data){
     $scope.selectedIndex = 0;
     $scope.$apply();
});