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

时间:2016-05-19 10:43:31

标签: javascript angularjs

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

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

我不想拥有多个观察程序,它会在DateFrom输入中查找更改以在DataService中更改它。

简而言之:var应该与另一个共享它的值,没有同步功能。

有解决方案吗?

这样的事情
$scope.dateTo = DataService.getWacht().dateTo = ''; 
TimeCtrl中的

不像预期的那样工作。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

如果您使用object并将其指定为控制器和工厂实例上的属性,则非常简单。

你可以这样做:

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/