2016-05-19 17 views
0

Ich habe einen Winkel-Controller (TimeCtrl) und eine Fabrik (DataService), die die Daten über einige andere Controller verwaltet.Sync-Daten zwischen Controller und Datenobjekt

In TimeCtrl gibt es Variablen wie $ scope.dateFrom und $ scope.dateTo. Ich möchte, dass sie sich einen Speicherbereich mit den entsprechenden Variablen im DataService teilen (wacht.dateFrom und wacht.dateTo).

Ich möchte nicht mehrere Watcher haben, die nach Änderungen in der DateFrom-Eingabe suchen, um sie auch im DataService zu ändern.

Kurz gesagt: Ein Var sollte seinen Wert mit einem anderen teilen, ohne eine Sync-Funktion.

Gibt es eine Lösung?

Dinge wie

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

im TimeCtrl funktionieren nicht wie erwartet.

Danke für Ihre Hilfe.

+0

könnten Sie bitte Ihren Code teilen –

Antwort

1

Es ist ziemlich einfach, wenn Sie ein Objekt verwenden und es als Eigenschaft auf der Controller- und Factory-Instanz zuweisen.

Sie können es wie folgt tun:

angular 
    .module('app', []); 

angular 
    .module('app') 
    .controller('Example', function (exFactory) { 
    this.obj = exFactory.obj; 
    }); 

angular 
    .module('app') 
    .factory('exFactory', function() { 
    return { 
     obj: { 
     x: 0 
     } 
    }; 
    }); 

Ausführliche Beispiel Blick auf diese Geige: https://jsfiddle.net/rnvLerqj/

Verwandte Themen