如何在angular js中实现适用于所有控制器的通用watch函数



如果service抛出错误,我想显示错误页面显示我正在更新错误变量$scope.error=true并导航到错误页面我正在实现错误变量的监视功能,并导航到错误页面。

谁能告诉我,如何实现通用的手表功能,适用于所有angularjs中的controller。在我的应用程序中,我正在处理服务错误。我在每个controller中调用service。而不是在每个controller中实现手表。我想在父controller中实现

谢谢

如果目的是导航到错误页面,我认为更好的解决方案是使用事件。

在你的服务中你可以广播错误。

$rootScope.$broadcast('myComponent.error', {
  message: 'some error message';
});

在其他地方(通常是在应用程序/路由设置中)你可以对它做出反应

$scope.$on('myComponent.error', function (event, data) {
 console.log(data);
 // show message, redirect or something else

});

这个解决方案比watch更好,因为您不需要脏化每个控制器和不必要地创建额外的watcher。