2012-09-30 8 views
8

मैं किसी ऑब्जेक्ट को किसी ईवेंट के माध्यम से कैसे प्रसारित कर सकता हूं?मैं Angularjs में किसी ऑब्जेक्ट को कैसे प्रसारित कर सकता हूं?

वर्तमान में मैं कोशिश कर रहा हूँ:

app.run ($rootScope) -> 
    message = {type: 'channel', action: 'create', data: { name: "ssss", id: 0}} 
    $rootScope.$broadcast('message', message) 

angular.module('WebChat').controller 'ChannelController', ($scope) -> 
    $scope.$on 'message', (message) -> 
     console.log message 
     console.log 'hi' 

लेकिन मुझे कोई उत्पादन

संपादित मैं काम कर रहा समझ में आ गया हो रही है। ऐसा लगता है कि कॉलबैक फ़ंक्शन का पहला पैरामीटर दायरा है।

angular.module('WebChat').controller 'ChannelController', ($scope) -> 
    $scope.$on 'message', (scope, message) -> 
     console.log message 
     console.log 'hi' 

उत्तर

7

आप अपने मामले में कोई उत्पादन हो रही है जब से तुम प्रसारण कर रहे हैं इससे पहले कि एक नियंत्रक संदेशों स्वीकार करने के लिए तैयार है: मैं करने के लिए नियंत्रक बदलना पड़ा। नियंत्रक के स्कॉप्स संदेशों को सुनने के लिए तैयार होने से पहले, मॉड्यूल की रन विधि को एप्लिकेशन के जीवन-चक्र में बहुत जल्दी निष्पादित किया जाता है। /: http://jsfiddle.net/vPq2P/3/

+1

मैं एक ऐसी ही स्थिति है, जहां मैं [लोड यूट्यूब आइफ्रेम एपीआई] (https करने की जरूरत है:

यहाँ jsFiddle दिखाता है कि इस, देखने के लिए कि प्रसारण होता है से पहले एक श्रोता के लिए तैयार है सांत्वना जाँच है /developers.google.com/youtube/iframe_api_reference#Getting_Started)। मैंने भार कोड को अंदर() के साथ-साथ इसे लोड करने की कोशिश करने के बाहर भी डालने का प्रयास किया है, लेकिन इससे कोई फर्क नहीं पड़ता कि मैंने इसे कहां रखा है, मेरे नियंत्रक सुनने के लिए तैयार है, जब तक कि मैं 1000 या उससे अधिक का टाइमआउट नहीं करता (1500 सर्वश्रेष्ठ काम करने लगता है)। उचित आदेश सुनने की गारंटी देने का कोई तरीका है-> टाइमआउट का उपयोग किये बिना प्रसारण? मुझे पता है कि मेरा प्रश्न अस्पष्ट रूप से व्यापक प्रतीत हो सकता है, लेकिन अगर आवश्यकता हो तो मैं अधिक जानकारी प्रदान कर सकता हूं। धन्यवाद। – braincomb

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

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