1
我是Angular JS的新手,我懷疑答案是使用工廠,但這超出了我目前的能力。一個UI Bootstrap DatePicker如何更新多個控制器?
難道我$scope.$watch()
在我的datepicker的控制器,並且,當值更改時,設置一個$rootscope
變量,並讓其他控制器$rootscope.$watch()
那?
我是Angular JS的新手,我懷疑答案是使用工廠,但這超出了我目前的能力。一個UI Bootstrap DatePicker如何更新多個控制器?
難道我$scope.$watch()
在我的datepicker的控制器,並且,當值更改時,設置一個$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);
});