Angularjs 一个UI引导数据采集器如何更新多个控制器?

Angularjs 一个UI引导数据采集器如何更新多个控制器?,angularjs,Angularjs,我是Angular JS的新手,我怀疑答案是使用工厂,但这超出了我目前的能力 我可以在我的日期选择器的控制器中设置$scope.$watch(),当值发生变化时,设置一个$rootscope变量,并让其他控制器$rootscope.$watch()这样吗?是的,你的直觉绝对正确,这是我想到的最清晰的方式: app.service("dateService",function(){ var selectedDate=null; return { getSelected

我是Angular JS的新手,我怀疑答案是使用工厂,但这超出了我目前的能力


我可以在我的日期选择器的控制器中设置
$scope.$watch()
,当值发生变化时,设置一个
$rootscope
变量,并让其他控制器
$rootscope.$watch()
这样吗?

是的,你的直觉绝对正确,这是我想到的最清晰的方式:

app.service("dateService",function(){
  var selectedDate=null;
  return {
           getSelectedDate:function(){
             return selectedDate;
           },
           setSelectedDate:function(date){
             selectedDate=date;
           },
  };
})
在控制器中:

app.controller("ctrl1",function($scope,dateService){
  $scope.$watch("dt",function(date){
    if(date){
      dateService.setSelectedDate(date);
    }
  },true);
});

app.controller("ctrl2",function($scope,dateService){
  $scope.$watch(dateService.getSelectedDate,function(date){
    $scope.dateFromTheOtherController=date;
  },true);
});