Ich habe diese Variable, die von der Factory gesteuert wird und den Controller zu aktualisieren, aber es ist nicht passiert.AngularJS - Steuerungsvariable, die nicht von einer Servicefunktion aktualisiert
Hier ist, was ich habe:
var app = angular.module('plunker', []);
app.controller('AppController', function($scope, AppFactory) {
var vm = this;
$scope.serverStatus = AppFactory.getStatus();
});
app.factory('AppFactory', function($timeout) {
var AppFactory = {};
var vm = this;
vm.serverStatus = true;
// Execute after 2 seconds of page start
$timeout(function() {
AppFactory.setStatus(false);
}, 2000);
AppFactory.setStatus = function(status) {
console.log('Server set to ' + status);
vm.serverStatus = status;
// Getting server status = false
AppFactory.getStatus();
};
AppFactory.getStatus = function() {
console.log('Getting server status: ' + vm.serverStatus);
return vm.serverStatus;
};
return AppFactory;
});
LIVE-Plunker DEMO: https://plnkr.co/edit/62xGw7Klvbywp9TODWF4?p=preview
Glauben Sie, die Richtlinien besser zwischen einer Fabrik und Controller mit 2-Wege-Kommunikation funktionieren würde?
Übertragung durch Ereignisse, wenn Server-Status ein EventEmitter Service changes.Make, und wenn Statusänderungen den Wert ausgeben, subskribieren Sie im Controller, um den letzten Wert durch dieses Ereignis zu erhalten. Wenn Sie weitere Hilfe benötigen, gebe ich möglicherweise einen Code-Hinweis. – Bettimms