我在 angularJS 中遇到 $broadcast 问题。我的控制器使用 $compile 函数在页面加载时向 DOM 动态添加指令元素。
$('#container').prepend($compile('<myDirective></myDirective>')($scope));
$scope.$broadcast('loadIt', stuffIneedLoaded);
我想要做的是在创建指令时调用指令范围函数,所以我使用了 $broadcast。现在发生的情况是在指令完成渲染之前调用了 $broadcast,因此指令中的 scope.$on 永远不会听到广播。
从指令链接功能:
link: function (scope, element, attrs) {
scope.$on('loadIt') = function (stuffToLoad) {
//stuff to load
}
}
我需要使用广播的原因是因为我需要从控制器发送指令数据。
小提琴不起作用,只是样板来帮助传达我的目标:
有任何想法吗?谢谢大家!