使用组件中的Typescript Angularjs定义全局变量

时间:2016-10-24 11:33:00

标签: angularjs typescript global-variables

我的应用程序使用组件和boostrapper。我想创建一个将设置全局日期变量的日期选择器。我试图创建一个服务,使用rootscope,基本上我可以在stackoverflow上找到所有解决方案,但它似乎没有用。

创建跨所有组件共享的全局变量的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

使用全局变量存储这样的状态通常不是一个好主意,因为很难跟踪变异的内容。

假设Angular 1.x,要共享这样的信息,您只需创建一个存储您正在跟踪的数据的服务。我将在此处添加免责声明,即网络应用中的状态管理仍然是一个棘手的问题。你可以采用Redux风格的方法,但我现在将它保持基本。

angular
  .module('app', [])
  .controller('testController', function(testService) {
    console.log(testService.getDate());
  });


angular.module('app')
  .service('testService', function() {
    var date = new Date();

    function getDate() {
      return date;
    }

    function setDate(newDate) {
      date = newDate;
    }
});

这样,您就有了一个读取/改变日期的界面。您可以将它注入任意数量的控制器/组件。

希望有所帮助(我知道答案不在Typescript中,但我认为因为问题有一个基本的解决方案,所以没关系太多 - 如果你想要一个Typescript答案,请告诉我,我我会为你改变:))。