Angularjs 值的全局侦听器
在我的AngularJs应用程序中,我想要一种全局方式,在值发生变化时调用工厂 值为Angularjs 值的全局侦听器,angularjs,Angularjs,在我的AngularJs应用程序中,我想要一种全局方式,在值发生变化时调用工厂 值为$scope.loading 因此,在控制器中,当我设置$scope.load=true “全局侦听器”将调用工厂progressFactory.start() 当我设置$scope.load=false时在控制器中,我希望“全局侦听器”调用工厂progressFactory.complete() 请用代码回答。您可以使用$watch $scope.$watch("loading", function(value
$scope.loading
因此,在控制器中,当我设置$scope.load=true代码>
“全局侦听器”将调用工厂progressFactory.start()代码>
当我设置$scope.load=false时代码>在控制器中,我希望“全局侦听器”调用工厂progressFactory.complete()代码>
请用代码回答。您可以使用$watch
$scope.$watch("loading", function(value) {
if (value) progressFactory.start();
else progressFactory.complete();
});
您可以使用:
$rootScope.$on("event", function(event, myValues)
当你不得不称之为:
$rootScope.$emit("event", myValus);
另一个解决方案是使用
$rootScope.$watch
此侦听器是否适用于应用程序中的所有控制器?或者它是针对单个控制器的解决方案?是否可以同时侦听两个值,例如,当$scope.gotData1=true
和$scope.gotData2=true
时,我可以设置$scope.loading=true
?这仅适用于单个控制器,使用rootScope
捕获所有控制器中的事件。好的,但在控制器中。我可以修改您的代码以适用于两个(或更多)不同的值吗。因此,当我从多个数据源加载时,我可以这样做:当$scope.gotData1=true
和$scope.gotData2=true
时,我可以设置$scope.loading=true
谢谢!我是个新手。您是否可以更具体地将其放置在何处,并在示例中使用my value$scope.loading
。否则我就不知道了。必须在控制器中使用$rootScope.$on(这样它才能到达$scope)。$rootScope.$emit可以放在您想要的任何服务/控制器/指令中。