此HTML按钮代码位于控制器中: 点击按钮,尝试调用此功能:
<button ng-click="vm.openpopup()" ng-if="!vm.data.length"
uib-tooltip="Add Business Value Chain"
class="btn btn-default `enter code here`ti-form-action-btn" id="add-bvc-btn">
<em class="glyphicon glyphicon-plus-sign"></em>
Add
</button>
function openpopup() {
$scope.$broadcast('popup');
}
以下是广播监听器代码,它位于上述同一控制器下的组件内部:
$scope.$on('popup', function () {
openModalPopup();
});
仅当没有数据时才显示该按钮。
函数调用绝对正常,但如果有数据,广播只能工作一次,如果手动删除这些数据,则显示按钮并播放广播。但对于页面加载,如果没有数据存在。 广播没有被触发。
尝试使用$rootScope.broadcast
,但仍然没有运气。
同时检查其他一些答案,将$timeout
内的代码块绑定,仍然没有结果。
所以这是使用广播的控制器和组件之间的通信。如何在负载下处理这个?
答案 0 :(得分:1)
我认为在您的情况下,您已使用ng-if
控制了按钮的可见性,请使用ng-show
代替ng-if
进行尝试。在ng-if
的情况下,模板可能无法加载。我希望这能解决你的问题。