在控制器和数据对象之间同步数据

Sync data between controller and dataobject

本文关键字:数据 之间 同步 对象 控制器      更新时间:2023-09-26

我有一个角度控制器(TimeCtrl)和一个工厂(DataService),用于管理其他一些控制器的数据。

在TimeCtrl中有类似$scope.dateFrom和$scope.dateTo的变量。我想让它们与DataService中的相应变量(wacht.dateFrom and wacht.dateTo)共享一个内存空间。

我不希望有多个观察程序,它们在DateFromInput中查找更改,以便在DataService中也更改它。

简而言之:一个var应该与另一个var共享它的值,而不需要sync函数。

有解决方案吗?

之类的东西

$scope.dateTo = DataService.getWacht().dateTo = ''; 

在TimeCtrl中无法正常工作。

谢谢你的帮助。

如果您使用对象并将其分配为控制器和工厂实例上的属性,这非常简单。

你可以这样做:

angular
    .module('app', []);
angular
    .module('app')
  .controller('Example', function (exFactory) {
    this.obj = exFactory.obj;
  });
angular
    .module('app')
  .factory('exFactory', function () {
    return {
        obj: {
        x: 0
      }
    };
  });

完整的例子看这个小提琴:https://jsfiddle.net/rnvLerqj/