J'utilise un service pour récupérer des données à partir d'une API:angulaire: service de mise à jour et partager des données entre les contrôleurs
angular.module('myApp', [])
.factory('myService', function($q, $timeout) {
var getMessages = function() {
var deferred = $q.defer();
$timeout(function() {
deferred.resolve('Hello world!');
}, 2000);
return deferred.promise;
};
return {
getMessages: getMessages
};
});
Et j'utiliser ces données dans plusieurs contrôleurs.
function ControllerA($scope, myService) {
$scope.message = myService.getMessages();
$scope.updateMessage = function(){
$scope.message = 'Hello Max';
};
}
function ControllerB($scope, myService) {
$scope.message = myService.getMessages();
$scope.$watch('message', function(){
// 'Hello Max'
}, true);
}
Je voudrais mettre à jour les données dans chaque contrôleur, mais quand je change la scope.message de $ dans le ControllerA, il ne se déclenche pas un changement dans la ControllerB.
EDIT: Le problème est que je ne veux pas utiliser "$ broadcast" et "$ on".
Des idées?
Voici un jsFiddle: http://jsfiddle.net/Victa/McLQD/
Merci pour votre réponse, mais la chose est que je voudrais éviter d'utiliser "$ broadcast" et "$ on". – Vic
@VictorCoulon Quand avez-vous mis à jour votre question ??? – zsong
juste après votre publication – Vic