Angular watch如果条件调用两次且三次

时间:2013-11-21 12:33:50

标签: javascript html5 angularjs watch

我正在使用watch概念来了解另一个控制器中发生的状态变化并在第二个控制器中进行重复更改,控制器之间的通信是通过监视。如果状态等于new,则角度模型弹出将打开并创建并取消选项。

但是这里if条件是多次调用,即使状态正在立即改变。而且我得到的最大调用堆栈大小超出错误并且整个页面都挂起了。

 $rootScope.$watch('reportStatus', function( status )
    {
      if(status == 'new'){ 
           var modalView = $modal({template: 'app/dashboard/report/createNewReport.tpl.html', persist: true, show: false, backdrop: 'static', scope: $scope});
           $q.when(modalView).then(function(modalEl) {
           modalEl.modal('show');
           });
          }
});

当我要去另一个页面然后回来点击新的时候会发生这种情况。

请建议

0 个答案:

没有答案