如何从主控制器拨打公共电话

时间:2017-05-17 04:18:32

标签: javascript angular daterangepicker

我正在我网站的所有页面中设置日期,并根据这些调用API的显示 - 数据。但是,我每次从显示的日历访问新页面时都需要选择日期(即所有页面/控制器都有单独的日历设置)。但我希望,如果我选择了一个日期,它在我访问的所有页面中都保持不变。我正在打电话

$scope.cb(moment().subtract(29, 'days'), moment());

这在我的所有页面中都很常见,即 - 每个控制器都有此调用。我应该将什么添加到我的主控制器中,或者如何为我网站中的所有页面传递上述调用的输入。

这是正确的方法吗?!

1 个答案:

答案 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();

});