AngularJs $广播不在加载

时间:2017-10-05 17:09:45

标签: javascript angularjs

  

此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内的代码块绑定,仍然没有结果。

所以这是使用广播的控制器和组件之间的通信。如何在负载下处理这个?

1 个答案:

答案 0 :(得分:1)

我认为在您的情况下,您已使用ng-if控制了按钮的可见性,请使用ng-show代替ng-if进行尝试。在ng-if的情况下,模板可能无法加载。我希望这能解决你的问题。