6
ile fabrika değişkeni izle

Tek sayfalık uygulamam 2 kontrol cihazına sahip: Birincisi ana menüm ve ikincisi görünüm içindir. Onlar bu fabrika verileri paylaşmakAngular

myApp.factory('MenuFactory', function(){ 
var factory = { 
    Monitor: "doneJob", 
    Control: "", 
    Report: "", 
    Display: "", 
    setMonitor: function(value){ 
     factory.Monitor = value; 
    }, 
    setControl: function(value){ 
     factory.Control = value; 
    }, 
    setReport: function(value){ 
     factory.Report = value; 
    }, 
    setDisplay: function(value){ 
     factory.Display = value; 
    } 

}; 
return factory; 
}); 

Ben factory.Control üzerinde değişiklik izlemek istiyorum, ama o inşaat yapamazsınız.

ben bu çalıştığınızda:

$scope.$watch(function(){MenuFactory.Control}, function(NewValue, OldValue){ 
    console.log(NewValue + ' ' + OldValue); 
    console.log(MenuFactory.Control); 
}, true); 

ben konsolda "tanımlanmamış tanımlanmamış" ve "Süreç" olsun. Bu fabrika için $ watch uygulamamda herhangi bir sorun var mı?

cevap

13

Yanlış bir sözdizimi vardı. hizmet değişkeni MenuFactory.Control & servis nesnesini de içermeli ve nesne eşitliğini kontrol etmek için nesneye sahip olmadığınızdan, true'a gerek yoktur.

Kod

$scope.$watch(function(){ 
    return MenuFactory.Control; 
}, function(newValue, oldValue){ 
    console.log(newValue + ' ' + oldValue); 
    console.log(MenuFactory.Control); 
}); 
+0

Çok teşekkürler, çok kolay ben bunu görmedim ... you..Thanks yardım etmek – Pierolain

+0

@Pierolain sevindim :) –