我正在我网站的所有页面中设置日期,并根据这些调用API的显示 - 数据。但是,我每次从显示的日历访问新页面时都需要选择日期(即所有页面/控制器都有单独的日历设置)。但我希望,如果我选择了一个日期,它在我访问的所有页面中都保持不变。我正在打电话
$scope.cb(moment().subtract(29, 'days'), moment());
这在我的所有页面中都很常见,即 - 每个控制器都有此调用。我应该将什么添加到我的主控制器中,或者如何为我网站中的所有页面传递上述调用的输入。
这是正确的方法吗?!
答案 0 :(得分:0)
根据您的需要,您必须设置日期,然后在页面中使用它。
为此目的,Angular提供了两种方式:
方式1:
$rootScope
:这是Angular中所有$ scope的父作用域。所以,如果你对它进行任何设置,它将随处可见。
// way to set the date
$rootScope.selectedDate = // your date object;
// way to fetch the date
var date = $rootScope.selectedDate
方式2:
服务:Angular提供Service
概念,它是单例对象。意味着一旦你设置任何东西,就可以随时随地使用。
创建服务:
angular.module('someModule', [])
.service('commonService', function() {
var selectedDate;
this.setDate = function(date) {
selectedDate = date;
}
this.getDate = function() {
return selectedDate;
}
});
如何使用
angular.module('someModule')
.controller('someCntrl', function($scope, commonService) {
// way to set the date
var date = //some date;
commonService.setDate(date);
})
.controller('otherCtrl', function($scope, commonService) {
// way to fetch date
var date = commonService.getDate();
});