2016-02-22 19 views
6

मैं पर्यवेक्षकों के लिए काफी नया हूं। मैं बस एक साधारण स्ट्रिंग से पर्यवेक्षक कैसे बनाऊंगा? फिर इसे सब्सक्राइब करें और इसे बदलते समय आउटपुट करें।एक स्ट्रिंग से अवलोकन (कोणीय 2)

क्या यह समझ में आता है?

मेरे पास Google खोज के साथ कोई भाग्य नहीं है। शायद गलत कीवर्ड?


बेहतर विवरण के लिए कुछ कोड जोड़ना:

My constructor on service 

constructor() { 
    // Create observable stream to output our data 
    this.notice = Observable.create(
    (observer) => this.observer = observer; 
); 
}; 

My method on service 

set(string) { 
    this.notice.subscribe((value) => { 
    // Push the new value into the observable stream 
    this.observer.next(string); 
    }, (error) => console.log('Could not set data.')); 
} 

Calling service method 

setNotice(event) { 
    event.preventDefault(); 

    // Calling service to set notice 
    this.noticeService.set('This is a string'); 
} 

मुझे लगता है कि मैं गलत यहाँ कुछ कर रहा हूँ? लेकिन यह सुनिश्चित नहीं है कि कैसे पूछें। मैं किसी भी स्पष्टीकरण के लिए आभारी रहूंगा।

+0

इस बारे में waht.notice.uns सदस्यता() में ngDestroy() भी? मुझे पता है कि मैन्युअल रूप से जोड़े गए ईवेंट श्रोताओं के लिए मेमोरी लीक का एक आम कारण है ... तो मुझे लगता है कि यह वही होगा। – JGFMK

+0

मैं भी इसके लिए व्यवहार विषय पर विचार कर रहा हूं। https://stackoverflow.com/questions/39494058/behaviorsubject-vs-observable – JGFMK

उत्तर

12

आप Observable वर्ग के of विधि का उपयोग कर सकते हैं:

var obs = Observable.of('some string'); 

संपादित

अपनी सेवा के कोड के बारे में, मैं इस तरह अपने set विधि का कोड refactor woulsd:

set(string) { 
    this.observer.next(string); 
} 

आपपर सब्सक्राइब कर सकते हैं आपके आवेदन के दूसरे हिस्से में 210 संपत्ति अधिसूचित की जाएगी।

+0

इसे दिखाने के लिए धन्यवाद। मैं सोच रहा हूं कि 'कुछ स्ट्रिंग' को वैरिएबल के मान के रूप में कैसे बदल सकता है जो बदल सकता है। इसे अवलोकन के अंदर कैसे धक्का देना है? –

+0

वास्तव में, आप नहीं कर सकते। उस ने कहा कि जब मूल्य बदलता है तो आप घटना को आग लग सकते हैं। इसके लिए आपको कच्चे अवलोकन करने की आवश्यकता है: 'Observable.create ((पर्यवेक्षक) => {observer.next (' कुछ स्ट्रिंग ');}); '। 'अगली' विधि को कई बार कहा जा सकता है ... ध्यान दें कि आप 'पर्यवेक्षक' चर को कॉलबैक के बाहर एक चर में सेट कर सकते हैं। –

+0

फिर से धन्यवाद। मैंने ऊपर कुछ कोड जोड़ा है। –

संबंधित मुद्दे