gpt4 book ai didi

javascript - AngularJs $emit 和 $broadcast 以及 $on 问题

转载 作者:行者123 更新时间:2023-11-30 05:32:55 25 4
gpt4 key购买 nike

试图理解angularjs的$emit和$broadcast以及$on事件,理解了理论部分。但无法理解实际的东西。

请看这个,为什么我没有收到 console.log 消息

HTML

<div ng-app="demo">
<div ng-controller="ParentCtrl as parent" class="ng-scope">
{{ parent.data }}
<div ng-controller="SiblingOneCtrl as sib1" class="ng-scope">
{{ sib1.data }}
</div>
</div>
</div>

JS

var app = angular.module('demo', []);

app.controller('ParentCtrl',function($scope) {

$scope.$broadcast('parent', 'Some data'); // going down!

});

app.controller('SiblingOneCtrl',function($scope) {

$scope.$on('parent', function (event, data) {
console.log(data); // 'Some data'
});

});

Fiddle Demo

最佳答案

除了广播发生在子 Controller 有机会实例化之前,代码并没有真正的错误。根据 http://jsfiddle.net/hadx9zys/ 使用超时

setTimeout(function() {
$scope.$broadcast(...
}, 1000);

关于javascript - AngularJs $emit 和 $broadcast 以及 $on 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25784817/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com