سؤال

كيف يمكنني بث كائن من خلال حدث ما؟

حاليا أحاول:

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'
هل كانت مفيدة؟

المحلول

لن تحصل على أي نتيجة في قضيتك منذ أن كنت كذلك البث قبل أن تكون وحدة التحكم جاهزة لقبول الرسائل.يتم تنفيذ طريقة تشغيل الوحدة في وقت مبكر جدًا من دورة حياة التطبيق، قبل أن تصبح نطاقات وحدة التحكم جاهزة للاستماع إلى الرسائل.

هنا هو jsFiddle الذي يوضح ذلك، تحقق من وحدة التحكم لمعرفة أن البث يحدث قبل أن يصبح المستمع جاهزًا: http://jsfiddle.net/vPq2P/3/

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top