2016-05-19 2 views
0

У меня есть угловой контроллер (TimeCtrl) и завод (DataService), который управляет данными через некоторые другие контроллеры.Синхронизация данных между контроллером и объектом данных

В TimeCtrl есть переменные, такие как $ scope.dateFrom и $ scope.dateTo. Я хочу, чтобы они делили одно пространство памяти с соответствующими переменными в DataService (wacht.dateFrom и wacht.dateTo).

Я не хочу иметь несколько наблюдателей, которые ищут изменения в вводе DateFrom, чтобы изменить его и в DataService.

Вкратце: var должен делиться своим значением с другим, без функции синхронизации.

Есть ли решение?

вещи, как

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

в TimeCtrl не работают, как ожидалось.

Спасибо за помощь.

+0

могли бы вы поделиться кодом –

ответ

1

Это довольно просто, если вы используете объект и назначаете его как свойство для контроллера и заводского экземпляра.

Вы можете сделать это следующим образом:

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/

Смежные вопросы