में किसी ऑब्जेक्ट प्रॉपर्टी में बदलाव को देखते हुए मैंने हाल ही में कोणीय 1 से एंगुलर 2 में स्थानांतरित किया है और अक्सर किसी ऑब्जेक्ट की संपत्ति में बदलाव का पता लगाने की कोशिश करने वाले मुद्दों में भाग लेता है (कुछ पिछली बार $ घड़ी के माध्यम से किया जाता है)।एंगुलर 2
विशिष्ट प्रयोग मामला है कि मैं एक इंजेक्शन सेवा है कि, उदाहरण के लिए एक वस्तु सेटिंग्स युक्त डेटा का एक टुकड़ा का कहना है:
@Injectable()
export class SettingsService
{
_settings = {
'settingA' : true,
'settingB' : false
}
...
get settings()
{
return this._settings;
}
}
मैं तो एक घटक होगा इस तरह के एक सेटिंग पृष्ठ में के रूप में कि सेटिंग सेवा से सेटिंग्स मिल जाएगा एक ईओण एप्लिकेशन: किसी toggle की तरह एक UI घटक को
constructor(private settingsService : SettingsService)
{
this.settings = settingsService.settings;
}
और सीधे जोड़ी वस्तु गुण। समस्या प्रत्येक टॉगल परिवर्तन ईवेंट पर फ़ंक्शन को कॉल करने के अलावा अन्य है, या तो सेवा या घटक कैसे पता लगा सकता है कि सेटिंग ऑब्जेक्ट को एक उचित कार्रवाई को ट्रिगर करने के लिए बदल दिया गया है जैसे डेटा स्टोर में सेटिंग्स को सहेजना?
यह एक BehaviorSubject का उपयोग कर रहा है के बजाय
Observable
उपयोग करने के साथ इसे हल करने की अभी भी एक समारोह कॉल की आवश्यकता है जब टॉगल बस सेवा में परिवर्तन लेने के लिए सक्षम किया जा रहा बजाय राज्य में परिवर्तन । हालांकि EventEmitter का उपयोग करने पर अच्छे नोट्स, मैंने सेवाओं में डेटा अपडेट के घटकों को सूचित करने के लिए उन्हें कहीं और इस्तेमाल किया है। – cubiclewar