2015-11-18 7 views
2

я хочу отправить параметры с помощью Angualr вещатьУгловая вещать

От одного моего контроллера я сделать

$rootScope.$broadcast('handlemodeldelete', Idx); // I broadcast value 6 

и в другой контроллер У меня есть слушатель

$scope.$on('handlemodeldelete', function(Idx) 
{ 

    }); 

Но значение Idx достигает как это после того, как я вижу окно отладки.

currentScope: ChildScope 
defaultPrevented: false 
name: "handlemodeldelete" 
preventDefault:() 
targetScope: Scope 
__proto__: Object 

Любая подсказка.?

ответ

0

Первый параметр функции-слушателя - это объект события, затем все аргументы, используемые при вызове $ broadcast, следуют. Определите свой обработчик следующим образом:

$scope.$on('handlemodeldelete', function(event, Idx) 
     { 

     }); 

См AngularJS документы для получения дополнительной информации:

https://docs.angularjs.org/api/ng/type/$rootScope.Scope#$on

+0

спасибо. Это решило проблему. Но у меня такой же код, и там он работает. Мне интересно, почему? –

+0

Не уверен. Это ту же версию AngularJS? Возможно, интерфейс изменился? Отправьте другой код, чтобы я мог посмотреть. – bobwienholt

+0

Его та же версия angularJS, так как это тот же проект и точно такой же код. Просто имя обработчика different.Strange. Но спасибо большое. :) –

1

Первых пары этого событие. Вам нужно добавить еще один параметр:

$scope.$on('handlemodeldelete', function(e, Idx){ 
    console.log("Event", e); 
    console.log("IDX", Idx); 
}); 

пример для передачи нескольких Params будет:

$scope.$broadcast('eventName', { message: msg, message2: msg2 }); 


$scope.$on('eventName', function (event, args) { 
    console.log(args.message); 
    console.log(args.message2); 
}); 

Более подробная информация на угловых Docs: https://docs.angularjs.org/api/ng/type/$rootScope.Scope#$broadcast