2017-10-05 111 views
0

此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(); 
}); 

該按鈕僅在沒有d ata禮物。

函數調用絕對沒問題,但廣播只有一次數據,如果這些數據被手動刪除,然後按鈕顯示和廣播的作品。但在頁面加載時,如果沒有數據存在。 廣播沒有被觸發。

嘗試使用$rootScope.broadcast,仍然沒有運氣。

還檢查一些其他答案,綁定在$timeout裏面的代碼塊,仍然沒有結果。

所以這是使用廣播的控制器和組件之間的通信。如何處理負載?

+1

顯示您的代碼。控制器,HTML等 – hamzox

+0

你是如何調用負載函數? – Nitheesh

回答

1

我認爲在你的情況下你已經控制了你的按鈕的可見性與ng-if的問題,嘗試使用ng-show而不是ng-if。在ng-if的情況下,有可能不加載模板。我希望這能解決你的問題。

+0

答案看起來很有趣,但它不適合我。因爲只有在使用'ng-if'存在數據的時候生病才加載組件,所以如果我使用'ng-show'的話。它沒有正確加載。 – Mithun

+0

可能是因爲這樣,組件數據被刪除和廣播功能沒有被調用。但是,它是如何工作後加載,我手動刪除數據呢? – Mithun