[英]AngularJs $broadcast not working on load
此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
,仍然沒有結果。
因此,這是控制器和組件之間使用廣播進行的通信。 如何處理此負載?
我認為在您使用ng-if
控制按鈕可見性的情況下,請使用ng-show
而不是ng-if
嘗試進行操作。 如果是ng-if
,則有可能模板無法加載。 希望能解決您的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.