Ich möchte zu dieser Frage beitragen, indem ich darauf hinweise, dass der empfohlene Weg zur gemeinsamen Nutzung von Daten zwischen den für die Verarbeitung Verantwortlichen und sogar den Richtlinien die Verwendung von Diensten (Fabriken) ist, wie bereits erwähnt wurde, aber ich möchte auch ein praktisches Beispiel dafür geben, wie dies geschehen sollte.
Hier ist der funktionierende Plunker: http://plnkr.co/edit/Q1VdKJP2tpvqqJL1LF6m?p=info
Erstens, erstellen. Ihr Dienstleistung , die Ihr gemeinsame Daten :
app.factory('SharedService', function() {
return {
sharedObject: {
value: '',
value2: ''
}
};
});
Dann injizieren Sie es einfach in Ihr Kontrolleure und greifen Sie auf die gemeinsamen Daten in Ihrem Bereich zu:
app.controller('FirstCtrl', function($scope, SharedService) {
$scope.model = SharedService.sharedObject;
});
app.controller('SecondCtrl', function($scope, SharedService) {
$scope.model = SharedService.sharedObject;
});
app.controller('MainCtrl', function($scope, SharedService) {
$scope.model = SharedService.sharedObject;
});
Sie können dies auch für Ihre Direktiven funktioniert es auf die gleiche Weise:
app.directive('myDirective',['SharedService', function(SharedService){
return{
restrict: 'E',
link: function(scope){
scope.model = SharedService.sharedObject;
},
template: '<div><input type="text" ng-model="model.value"/></div>'
}
}]);
Ich hoffe, dass diese praktische und saubere Antwort für jemanden hilfreich sein kann.